/* FlowProject cookie banner — laravel-cookie-consent module styles, V3 Terminal theme */
:root {
    --cc-accent: #B4FF00;
    --cc-accent-contrast: #08080B;
    --cc-bg: #0F0F14;
    --cc-text: #E8E8EC;
    --cc-muted: #B8B8C0;
    --cc-border: #2A2A33;
    --cc-radius: 0px;
}
.cc-banner, .cc-modal, .cc-banner *, .cc-modal * { box-sizing: border-box; }
.cc-banner { position: fixed; inset: auto 0 0 0; z-index: 99998; display: none; padding: 12px; padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; }
.cc-banner--visible { display: block; }
.cc-banner__inner { max-width: 1200px; margin: 0 auto; background: var(--cc-bg); color: var(--cc-text);
    border: 1px solid var(--cc-border); border-top: 2px solid var(--cc-accent); border-radius: var(--cc-radius);
    box-shadow: 0 -10px 50px rgba(0, 0, 0, .55); padding: 18px; display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 1024px) { .cc-banner__inner { flex-direction: row; align-items: center; gap: 32px; padding: 22px 26px; } }
.cc-banner__title { font-size: 15px; font-weight: 700; margin: 0 0 6px; color: var(--cc-accent); letter-spacing: .01em; }
.cc-banner__title::before { content: "$ "; color: var(--cc-muted); }
.cc-banner__body { font-size: 13px; line-height: 1.6; color: var(--cc-muted); margin: 0; }
.cc-banner__body a { color: var(--cc-text); text-decoration: underline; text-decoration-color: var(--cc-accent); text-underline-offset: 3px; }
.cc-actions { display: flex; flex-direction: column; gap: 8px; flex-shrink: 0; }
@media (min-width: 560px) { .cc-actions { flex-direction: row; } }
.cc-btn { appearance: none; cursor: pointer; font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; min-height: 44px;
    padding: 10px 18px; border-radius: var(--cc-radius); border: 1px solid var(--cc-border); background: transparent; color: var(--cc-text);
    transition: border-color .2s, background .2s, color .2s; }
.cc-btn:hover { border-color: var(--cc-accent); color: var(--cc-accent); }
.cc-btn--primary { background: var(--cc-accent); border-color: var(--cc-accent); color: var(--cc-accent-contrast); }
.cc-btn--primary:hover { background: #C8FF3D; color: var(--cc-accent-contrast); }
.cc-btn:focus-visible, .cc-modal__close:focus-visible { outline: 2px solid var(--cc-accent); outline-offset: 2px; }
.cc-modal { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center;
    padding: 16px; background: rgba(0, 0, 0, .7); font-family: "JetBrains Mono", ui-monospace, Menlo, monospace; }
.cc-modal--open { display: flex; }
.cc-modal__box { background: var(--cc-bg); color: var(--cc-text); width: 100%; max-width: 620px; border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius); max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; }
.cc-modal__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 22px; border-bottom: 1px solid var(--cc-border); }
.cc-modal__title { font-size: 17px; font-weight: 700; margin: 0; }
.cc-modal__close { background: none; border: 0; cursor: pointer; font-size: 26px; line-height: 1; color: var(--cc-muted); padding: 4px 8px; min-width: 44px; min-height: 44px; }
.cc-modal__body { overflow-y: auto; padding: 20px 22px; display: flex; flex-direction: column; gap: 18px; }
.cc-modal__intro { font-size: 13px; line-height: 1.6; color: var(--cc-muted); margin: 0; }
.cc-cat { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 1px dashed var(--cc-border); padding-bottom: 16px; }
.cc-cat:last-child { border-bottom: 0; padding-bottom: 0; }
.cc-cat__title { font-size: 14px; font-weight: 600; margin: 0 0 4px; }
.cc-cat__desc { font-size: 12.5px; line-height: 1.55; color: var(--cc-muted); margin: 0; }
.cc-always { color: var(--cc-accent); font-weight: 600; font-size: 12px; white-space: nowrap; padding-top: 3px; }
.cc-switch { position: relative; display: inline-block; width: 44px; height: 24px; flex-shrink: 0; margin-top: 2px; }
.cc-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.cc-slider { position: absolute; inset: 0; background: #2A2A33; border: 1px solid #3A3A45; border-radius: 999px; transition: background .25s; cursor: pointer; }
.cc-slider::before { content: ""; position: absolute; left: 2px; top: 2px; width: 18px; height: 18px; background: #E8E8EC; border-radius: 50%; transition: transform .25s; }
.cc-switch input:checked + .cc-slider { background: var(--cc-accent); border-color: var(--cc-accent); }
.cc-switch input:checked + .cc-slider::before { transform: translateX(20px); background: #08080B; }
.cc-switch input:focus-visible + .cc-slider { outline: 2px solid var(--cc-accent); outline-offset: 2px; }
.cc-modal__foot { padding: 14px 22px; border-top: 1px solid var(--cc-border); display: flex; flex-direction: column; gap: 8px; }
@media (min-width: 640px) { .cc-modal__foot { flex-direction: row; justify-content: flex-end; } }
@media (max-width: 559px) {
    .cc-banner { padding: 8px; padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)); }
    .cc-banner__inner { padding: 14px; gap: 12px; }
    .cc-banner__title { font-size: 14px; margin-bottom: 4px; }
    .cc-banner__body { font-size: 12.5px; line-height: 1.5; }
    .cc-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .cc-actions [data-cookie-settings] { grid-column: 1 / -1; order: 3; min-height: 36px; padding: 6px; border: 0; font-weight: 500; color: var(--cc-muted); text-decoration: underline; text-underline-offset: 3px; }
}
@media (prefers-reduced-motion: reduce) { .cc-btn, .cc-slider, .cc-slider::before { transition: none; } }
