/* Freedom Upload v4 — graphite surfaces and soft emerald accents. */
:root { color-scheme: light; }
:root[data-theme="dark"] {
    color-scheme: dark;
    --bg:#101614;
    --paper:#18201c;
    --ink:#e8eeea;
    --muted:#95a69c;
    --line:#2b3730;
    --purple:#7bd6a8;
    --purple-dark:#95e2ba;
    --purple-light:#233b2e;
    --red:#ed91a0;
    --night-soft:#1d2721;
    --night-hover:#24342a;
    --night-dim:#7e9185;
}

.theme-switch {
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    min-height:36px;padding:8px 11px;border:1px solid #dfe7df;
    border-radius:9px;background:#fff;color:#68815d;font-size:11px;
    font-weight:600;white-space:nowrap;cursor:pointer;
    transition:background .15s,border-color .15s,color .15s;
}
.theme-switch svg { width:17px;height:17px; }
.theme-switch:hover { background:#edf5e9;border-color:#becfb5; }
.login-theme-switch { position:absolute;top:28px;right:28px;z-index:2; }

[data-theme="dark"] body { background:var(--bg);color:var(--ink); }
[data-theme="dark"] button,[data-theme="dark"] input,[data-theme="dark"] select { color:inherit; }
[data-theme="dark"] input::placeholder { color:#718579;opacity:1; }
[data-theme="dark"] button:focus-visible,[data-theme="dark"] a:focus-visible,[data-theme="dark"] [tabindex]:focus-visible { outline-color:#8bd8ac; }
[data-theme="dark"] input:focus,[data-theme="dark"] select:focus { border-color:#76b993!important;box-shadow:0 0 0 3px #7bd6a815; }
[data-theme="dark"] .theme-switch { color:#b3ccbc;border-color:#35493b;background:#1e2c23; }
[data-theme="dark"] .theme-switch:hover { color:#e0f3e5;background:#2b4032;border-color:#577960; }
[data-theme="dark"] .brand { color:#eaf2ed; }
[data-theme="dark"] .brand-icon { color:#10281b;background:linear-gradient(145deg,#9cdeb4,#6cc696);box-shadow:0 4px 14px #0002; }
[data-theme="dark"] .brand-word small { color:#91a698; }
[data-theme="dark"] .eyebrow { color:#8ca494; }
[data-theme="dark"] .sidebar { background:#141c18;border-color:#26342b; }
[data-theme="dark"] .nav-label { color:#819b89; }
[data-theme="dark"] .nav-item { color:#9bad9f; }
[data-theme="dark"] .nav-item:hover { color:#d2e6d7;background:#1f3025; }
[data-theme="dark"] .nav-item.active { color:#a5e2ba;background:#233b2a; }
[data-theme="dark"] .nav-count { color:#b5edc7;background:#35513b; }
[data-theme="dark"] .sidebar-tip { background:linear-gradient(135deg,#1d2e20,#1b281c);border-color:#31432e; }
[data-theme="dark"] .sidebar-tip h3 { color:#d8e9d2; }
[data-theme="dark"] .sidebar-tip p { color:#97ad8e; }
[data-theme="dark"] .tip-icon { color:#a6c998; }
[data-theme="dark"] .tip-decor { color:#344c2c; }
[data-theme="dark"] .private-badge { color:#8ca183; }
[data-theme="dark"] .live-dot { background:#8dc786; }
[data-theme="dark"] .account { border-color:#2c382a; }
[data-theme="dark"] .avatar { color:#c0e1b0;background:#2e4328; }
[data-theme="dark"] .account small { color:#90a285; }
[data-theme="dark"] .topbar { background:#151e18;border-color:#2a362b; }
[data-theme="dark"] .breadcrumb { color:#8a9c82; }
[data-theme="dark"] .breadcrumb span { color:#54654c; }
[data-theme="dark"] .breadcrumb strong { color:#b6c9aa; }
[data-theme="dark"] .topbar-badge { color:#96ad88; }
[data-theme="dark"] .page-heading .eyebrow { color:#8ea67e; }
[data-theme="dark"] .page-heading h1 { color:#e8f0e1; }
[data-theme="dark"] .page-heading h1 span { color:#b0d495; }
[data-theme="dark"] .page-heading p { color:#9aaf8a; }
[data-theme="dark"] .button { background:#202b20;border-color:#374433;color:#d9e5d1; }
[data-theme="dark"] .button:hover { background:#2a3926;border-color:#4f6346; }
[data-theme="dark"] .button.primary { color:#122814;background:#99d49d;border-color:#99d49d;box-shadow:0 5px 18px #0a140a30; }
[data-theme="dark"] .button.primary:hover { background:#b1e3ad;border-color:#b1e3ad; }
[data-theme="dark"] .button.danger { color:#f0a5aa;border-color:#633e41;background:#3b282b; }
[data-theme="dark"] .button.danger:hover { background:#4b2e34;border-color:#86505a; }
[data-theme="dark"] .button.danger-fill { color:#fff2f2;background:#b95665;border-color:#b95665; }
[data-theme="dark"] .button.danger-fill:hover { background:#cf6b79;border-color:#cf6b79; }
[data-theme="dark"] .icon-button { color:#8ea480; }
[data-theme="dark"] .icon-button:hover { color:#d1e6be;background:#2b3b24; }
[data-theme="dark"] .stat { background:#18211a;border-color:#2d392b; }
[data-theme="dark"] .stat>div>span { color:#a0b193; }
[data-theme="dark"] .stat strong { color:#e2edd9; }
[data-theme="dark"] .stat small { color:#8c9f7e; }
[data-theme="dark"] .stat-tag { color:#a6bd94;background:#263522; }
[data-theme="dark"] .stat-icon.violet { color:#b2cf9c;background:#2a3c24; }
[data-theme="dark"] .stat-icon.peach { color:#d7be8a;background:#393523; }
[data-theme="dark"] .stat-icon.green { color:#a2c6a0;background:#293c2c; }
[data-theme="dark"] .dropzone { border-color:#465f3b;background:linear-gradient(105deg,#1c2b1b,#192219); }
[data-theme="dark"] .dropzone:hover,[data-theme="dark"] .dropzone.dragover { background:#263b22;border-color:#91b47a; }
[data-theme="dark"] .drop-icon { color:#b0cb98;background:#2b3c24;box-shadow:none; }
[data-theme="dark"] .dropzone h2 { color:#dce9d1; }
[data-theme="dark"] .dropzone h2 span { color:#9eb18b; }
[data-theme="dark"] .dropzone p { color:#8fa17c; }
[data-theme="dark"] .dropzone p span { color:#627750; }
[data-theme="dark"] .drop-plus { color:#a8c38b;border-color:#3e5731; }
[data-theme="dark"] .library { background:#172019;border-color:#2b3829; }
[data-theme="dark"] .library-title h2 { color:#e0ebd6; }
[data-theme="dark"] .count-pill { color:#b8cba3;background:#2d3d25; }
[data-theme="dark"] .search-wrap input,[data-theme="dark"] .library-controls select { color:#c2d2b1;background:#1e2a1c;border-color:#354630; }
[data-theme="dark"] .search-wrap>span { color:#8c9e77; }
[data-theme="dark"] .search-wrap input::placeholder { color:#8b9e76; }
[data-theme="dark"] .view-switch { background:#1c271b;border-color:#354530; }
[data-theme="dark"] .view-switch button { color:#869a6f;background:transparent; }
[data-theme="dark"] .view-switch button.active { color:#b5d292;background:#304426; }
[data-theme="dark"] .filter-row,[data-theme="dark"] .library-footer { border-color:#2d3c26; }
[data-theme="dark"] .filter { color:#9bae8a; }
[data-theme="dark"] .filter:hover { background:#26371f; }
[data-theme="dark"] .filter.active { color:#c3dda6;background:#2e4222;border-color:#415a30; }
[data-theme="dark"] .text-button { color:#a3b88b; }
[data-theme="dark"] .text-button:hover { color:#d3e8b9; }
[data-theme="dark"] .image-card { background:#1d281c;border-color:#34432c; }
[data-theme="dark"] .image-card:hover { border-color:#5e794a;box-shadow:0 6px 24px #0002; }
[data-theme="dark"] .image-card.selected { border-color:#9abb75;box-shadow:0 0 0 2px #425b2c; }
[data-theme="dark"] .card-visual { background-color:#273122;background-image:linear-gradient(45deg,#313e29 25%,transparent 25%),linear-gradient(-45deg,#313e29 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#313e29 75%),linear-gradient(-45deg,transparent 75%,#313e29 75%); }
[data-theme="dark"] .card-name { color:#dfebcf; }
[data-theme="dark"] .card-meta { color:#a1b48a; }
[data-theme="dark"] .card-actions { border-color:#33432a; }
[data-theme="dark"] .copy-card { color:#aac18f; }
[data-theme="dark"] .copy-card:hover { color:#d7edb8; }
[data-theme="dark"] .card-actions .delete-card:hover { color:#efa5aa;background:#513238; }
[data-theme="dark"] .card-checkbox { background:#172414e8;box-shadow:0 1px 5px #0004; }
[data-theme="dark"] .format-badge { background:#172015db;color:#d2e1bb;backdrop-filter:blur(5px); }
[data-theme="dark"] .document-cover { background:linear-gradient(135deg,#49342d,#342c24); }
[data-theme="dark"] .document-cover:after { border-color:#bb927435; }
[data-theme="dark"] .document-cover.word { background:linear-gradient(135deg,#2d3c4a,#25323c); }
[data-theme="dark"] .document-cover.word:after { border-color:#7ea1b835; }
[data-theme="dark"] .document-cover.generic { background:linear-gradient(135deg,#3c4230,#2d3425); }
[data-theme="dark"] .paper-icon { color:#d6aa8c;background:#5a4236;border-color:#735a48;box-shadow:0 9px 22px #0003; }
[data-theme="dark"] .word .paper-icon { color:#b1cadd;background:#3e5666;border-color:#526c7c;box-shadow:0 9px 22px #0003; }
[data-theme="dark"] .generic .paper-icon { color:#c4cda3;background:#50593b;border-color:#636b4d; }
[data-theme="dark"] .video-cover { background:radial-gradient(ellipse at 20% 0,#435d60,transparent 70%),linear-gradient(145deg,#263b3d,#18272c); }
[data-theme="dark"] .video-caption { color:#afc6c7; }
[data-theme="dark"] .library-footer,[data-theme="dark"] .page-footer { color:#91a67b; }
[data-theme="dark"] .footer-star { color:#a1bc81; }
[data-theme="dark"] .selection-bar { background:#293c20;border-color:#465d32; }
[data-theme="dark"] .selection-bar>strong { color:#cee5ac; }
[data-theme="dark"] .upload-panel { background:#1d291b;border-color:#35472c; }
[data-theme="dark"] .upload-heading { color:#dae9c7; }
[data-theme="dark"] .upload-heading span { color:#b8d78f; }
[data-theme="dark"] .progress-track { background:#344b28; }
[data-theme="dark"] .progress-track>div { background:#a5cf83; }
[data-theme="dark"] .upload-file { color:#a8bd8c; }
[data-theme="dark"] .upload-file.success { color:#c2e1a1; }
[data-theme="dark"] .upload-file.error { color:#f1a4a9; }
[data-theme="dark"] .upload-file.cancelled { color:#a6ac98; }
[data-theme="dark"] dialog { color:#e2edd7;background:#1c281a;border-color:#405135;box-shadow:0 30px 110px #0008; }
[data-theme="dark"] dialog::backdrop { background:#030705a8;backdrop-filter:blur(7px); }
[data-theme="dark"] .detail-preview { background:#111a12; }
[data-theme="dark"] .detail-info h2,[data-theme="dark"] .small-dialog h2 { color:#e4efd9; }
[data-theme="dark"] .detail-meta { color:#a5bc8f; }
[data-theme="dark"] .field-label { color:#cadaae; }
[data-theme="dark"] .url-field { background:#162213;border-color:#3b5130; }
[data-theme="dark"] .url-field input { color:#b6ce98;background:transparent; }
[data-theme="dark"] .detail-hint,[data-theme="dark"] .small-dialog p { color:#afc198; }
[data-theme="dark"] .document-note { color:#b9cf9b; }
[data-theme="dark"] .document-note span,[data-theme="dark"] .video-note { color:#98ac7d; }
[data-theme="dark"] .small-dialog input { color:#e2edce;background:#192516;border-color:#435835; }
[data-theme="dark"] .dialog-symbol { color:#c4de9b;background:#354c26; }
[data-theme="dark"] .dialog-symbol.red { color:#f0a6ad;background:#4c3037; }
[data-theme="dark"] .dialog-close { color:#b4c994;background:#27371f; }
[data-theme="dark"] .empty-state>span { color:#b0ce89;background:#293f1e; }
[data-theme="dark"] .empty-state h3 { color:#dcebc7; }
[data-theme="dark"] .empty-state p { color:#abc28e; }
[data-theme="dark"] .toast { color:#e3f1d2;background:#314d23;border:1px solid #597940;box-shadow:0 8px 26px #0005; }
[data-theme="dark"] .toast svg { color:#c4e59b; }
[data-theme="dark"] .toast.error { color:#ffe5e7;background:#653441;border-color:#985469; }
[data-theme="dark"] .toast.error svg,[data-theme="dark"] .form-error { color:#f6b2bd; }
[data-theme="dark"] .boot-loader p,[data-theme="dark"] .connection-error p { color:#9db28a; }
[data-theme="dark"] .login-story { background:radial-gradient(ellipse at 20% 80%,#29432b55,transparent 65%),#17241a; }
[data-theme="dark"] .login-story>.eyebrow { color:#92ad85; }
[data-theme="dark"] .login-story h1 { color:#e1efd7; }
[data-theme="dark"] .login-story h1>span { color:#b5d79b; }
[data-theme="dark"] .login-story>p { color:#adc09b; }
[data-theme="dark"] .login-form-side { background:#111a13;border-left:1px solid #2b3a26; }
[data-theme="dark"] .login-form-wrap h2 { color:#dfefd4; }
[data-theme="dark"] .login-form-wrap>p { color:#abc397; }
[data-theme="dark"] .login-form-wrap label { color:#c3d6ac; }
[data-theme="dark"] .login-form-wrap input { color:#dfedd0;background:#1b2a17;border-color:#3b5030; }
[data-theme="dark"] .login-form-wrap input::placeholder { color:#8ea67a; }
[data-theme="dark"] .secure-icon { color:#bbd79d;background:#24381c;border-color:#3a522c; }
[data-theme="dark"] .login-note { color:#9bb484; }
[data-theme="dark"] .login-footer { color:#839b6c; }
[data-theme="dark"] .story-footer { color:#9db484; }
[data-theme="dark"] .story-footer .live-dot { background:#a8c38a; }
[data-theme="dark"] .art-card { border-color:#354a2d;background:#354a2d;box-shadow:0 15px 45px #0003; }
[data-theme="dark"] .art-landscape { background:#526a40; }
[data-theme="dark"] .art-hill.one { background:#829d5e; }
[data-theme="dark"] .art-hill.two { background:#3c542c; }
[data-theme="dark"] .art-sun { background:#e4cb91; }
[data-theme="dark"] .art-grid { background-color:#3c542e;background-image:linear-gradient(#81986435 1px,transparent 1px),linear-gradient(90deg,#81986435 1px,transparent 1px); }
[data-theme="dark"] .art-grid:after { color:#8ba86c; }
[data-theme="dark"] .art-caption,[data-theme="dark"] .art-back>span { color:#bbcea2; }
[data-theme="dark"] .art-caption b { color:#d4e6b6; }
[data-theme="dark"] .art-pill { color:#d0e1b5;background:#3c552d;border-color:#577443;box-shadow:0 8px 24px #0003; }
[data-theme="dark"] .art-star { color:#849f63; }
@media(max-width:820px) {
    [data-theme="dark"] .login-form-side { border-left:0;border-top:1px solid #2b3a26; }
    .login-form-side { padding-top:76px; }
    .login-theme-switch { top:21px;right:27px; }
}
@media(max-width:560px) {
    .topbar-actions { gap:8px; }
    .topbar .theme-switch { min-height:31px;width:32px;padding:6px; }
    .topbar .theme-label { display:none; }
    .login-theme-switch { font-size:10px;top:20px;right:24px; }
    .login-form-side { padding-top:75px; }
}
@media(prefers-reduced-motion:reduce) { .theme-switch { transition:none; } }

/* Neutral graphite foundation keeps the green accents soft and distinct. */
:root[data-theme="dark"] { --bg:#101617;--paper:#1a2223;--ink:#e8eeed;--line:#303b3c;--muted:#a0b0ad; }
[data-theme="dark"] .sidebar,[data-theme="dark"] .topbar { background:#151d1e;border-color:#2b3737; }
[data-theme="dark"] .library,[data-theme="dark"] .stat,[data-theme="dark"] dialog { background:#1a2324;border-color:#303c3d; }
[data-theme="dark"] .image-card { background:#202a2b;border-color:#364344; }
[data-theme="dark"] .image-card:hover { border-color:#5e8877; }
[data-theme="dark"] .card-actions,[data-theme="dark"] .library-footer,[data-theme="dark"] .filter-row,[data-theme="dark"] .account { border-color:#344142; }
[data-theme="dark"] .card-name,[data-theme="dark"] .page-heading h1,[data-theme="dark"] .library-title h2,[data-theme="dark"] .stat strong,[data-theme="dark"] .detail-info h2,[data-theme="dark"] .small-dialog h2 { color:#e3eeeb; }
[data-theme="dark"] .card-meta,[data-theme="dark"] .page-heading p,[data-theme="dark"] .stat>div>span,[data-theme="dark"] .detail-meta,[data-theme="dark"] .detail-hint,[data-theme="dark"] .small-dialog p { color:#a2b5b1; }
[data-theme="dark"] .stat small,[data-theme="dark"] .library-footer,[data-theme="dark"] .page-footer { color:#90a6a1; }
[data-theme="dark"] .button { background:#263233;border-color:#3d4d4b;color:#dce9e5; }
[data-theme="dark"] .button:hover { background:#304240;border-color:#5b7b6f; }
[data-theme="dark"] .button.primary { color:#102b21;background:#85d7b0;border-color:#85d7b0; }
[data-theme="dark"] .button.primary:hover { background:#a0e7c3;border-color:#a0e7c3; }
[data-theme="dark"] .button.danger { color:#f0a9b4;background:#3b2a30;border-color:#63424c; }
[data-theme="dark"] .button.danger:hover { background:#50333e; }
[data-theme="dark"] .button.danger-fill { background:#b95665;border-color:#b95665;color:#fff; }
[data-theme="dark"] .icon-button,[data-theme="dark"] .copy-card { color:#9abbb0; }
[data-theme="dark"] .icon-button:hover,[data-theme="dark"] .copy-card:hover { color:#c2ebd9;background:#2b4338; }
[data-theme="dark"] .search-wrap input,[data-theme="dark"] .library-controls select,[data-theme="dark"] .view-switch,[data-theme="dark"] .url-field,[data-theme="dark"] .small-dialog input { background:#202d2d;border-color:#3b4d49;color:#cbdfd7; }
[data-theme="dark"] .url-field input { color:#b4d3c5; }
[data-theme="dark"] .search-wrap input::placeholder { color:#91a9a0; }
[data-theme="dark"] .filter { color:#a4bdb2; }
[data-theme="dark"] .filter.active { background:#294438;border-color:#3e614e;color:#b2e4c5; }
[data-theme="dark"] .filter:hover { background:#263e34; }
[data-theme="dark"] .view-switch button.active { color:#bee9cf;background:#345340; }
[data-theme="dark"] .nav-item.active { background:#294235;color:#b8e7c8; }
[data-theme="dark"] .nav-count,[data-theme="dark"] .count-pill { background:#36513f;color:#c2e6ca; }
[data-theme="dark"] .dropzone { background:linear-gradient(105deg,#1c3028,#1b2723);border-color:#416652; }
[data-theme="dark"] .dropzone h2 { color:#dbebe3; }
[data-theme="dark"] .dropzone h2 span,[data-theme="dark"] .dropzone p { color:#a0b9a9; }
[data-theme="dark"] .detail-preview { background:#111c1c; }
[data-theme="dark"] .field-label { color:#cbdfd4; }
[data-theme="dark"] .login-story { background:radial-gradient(ellipse at 20% 80%,#284f3d55,transparent 65%),#182421; }
[data-theme="dark"] .login-form-side { background:#121b1c;border-color:#2b3d37; }
[data-theme="dark"] .login-form-wrap h2,[data-theme="dark"] .login-story h1 { color:#e5f1e9; }
[data-theme="dark"] .login-form-wrap label { color:#c1d9ca; }
[data-theme="dark"] .login-form-wrap>p,[data-theme="dark"] .login-story>p { color:#a7c4b2; }
[data-theme="dark"] .login-form-wrap input { background:#1e2d27;border-color:#3d5448;color:#e0efe4; }
[data-theme="dark"] .login-form-wrap input::placeholder { color:#93ad9b; }

/* Mobile navigation uses three equal tiles; it never scrolls sideways. */
@media(max-width:820px) {
    .sidebar nav { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;overflow:visible;margin-top:19px; }
    .sidebar .nav-item {
        position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;
        width:100%;min-width:0;min-height:67px;margin:0 0 13px;padding:9px 6px 8px;
        gap:6px;font-size:11px;white-space:normal;line-height:1.25;border-radius:10px;
    }
    .sidebar .nav-item>span:first-child { display:flex;align-items:center;justify-content:center; }
    .sidebar .nav-item svg { width:18px;height:18px; }
    .sidebar .nav-text { display:flex;align-items:center;justify-content:center;min-height:26px;text-align:center;overflow-wrap:anywhere; }
    .sidebar .nav-count { position:absolute;right:8px;top:7px;max-width:34px;padding:2px 5px;margin:0;font-size:9px;overflow:hidden;text-overflow:ellipsis; }
}
@media(max-width:560px) {
    .sidebar nav { gap:6px;margin-top:16px; }
    .sidebar .nav-item { min-height:65px;padding:9px 5px 7px;font-size:10px;gap:5px;margin-bottom:12px; }
    .sidebar .nav-item svg { width:17px;height:17px; }
    .sidebar .nav-text { min-height:25px; }
    .sidebar .nav-count { right:6px;top:6px;font-size:8px;max-width:30px;padding:2px 4px; }
}
[data-theme="dark"] input:-webkit-autofill {
    -webkit-text-fill-color:#dfede5;
    box-shadow:0 0 0 1000px #1e2d27 inset;
    caret-color:#dfede5;
}
@media(max-width:560px) {
    .filter-row { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:stretch; }
    .filters { display:contents; }
    .filter-row .filter,.filter-row>.text-button {
        width:100%;min-width:0;min-height:31px;padding:7px 4px;margin:0;
        white-space:normal;font-size:10px;line-height:1.35;
    }
}
