:root{--bg:#f5f7fb;--surface:#fff;--text:#111827;--muted:#64748b;--line:#dbe2ea;--brand:#0f172a;--brand2:#1d4ed8;--soft:#eef4ff;--danger:#b42318;--ok:#067647;--radius:22px;--shadow:0 12px 34px rgba(15,23,42,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit}.muted{color:var(--muted);line-height:1.5}.topbar,.table-header{max-width:1180px;margin:0 auto;padding:28px 22px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar h1,.table-header h1{margin:2px 0 0;font-size:clamp(28px,5vw,44px);letter-spacing:-.04em}.eyebrow{font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--brand2)}.icon-link,.back-btn{display:grid;place-items:center;min-width:46px;height:46px;padding:0 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-decoration:none;font-weight:800;box-shadow:0 4px 14px rgba(15,23,42,.04)}
.home-grid{max-width:1180px;margin:0 auto;padding:18px 22px 36px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.big-tile{min-height:220px;border:0;border-radius:28px;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:6px;text-align:left;text-decoration:none;box-shadow:var(--shadow);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.big-tile:first-child{grid-column:1/-1;min-height:300px}.big-tile:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(15,23,42,.12)}.primary-tile{background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff}.dev-tile{background:var(--surface);color:var(--text)}.tile-icon{font-size:54px;line-height:1;margin-bottom:auto;opacity:.95}.big-tile>span:not(.tile-icon){font-size:clamp(30px,6vw,54px);font-weight:950;letter-spacing:-.05em}.big-tile small{font-size:15px;opacity:.72}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#111827;color:#fff;padding:13px 18px;border-radius:999px;font-weight:700;opacity:0;pointer-events:none;transition:.2s;z-index:50}.toast.show{opacity:1;transform:translate(-50%,0)}
.auth-wrap,.auth-body{min-height:100vh;display:grid;place-items:center;padding:22px}.auth-card{width:min(440px,100%);background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:var(--shadow)}.brand-mark{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;background:var(--brand);color:#fff;font-weight:950;font-size:22px}.auth-card h1{margin:20px 0 4px;font-size:34px;letter-spacing:-.04em}.pin-form,.auth-form,.upload-form{display:grid;gap:14px;margin-top:22px}.auth-form label{display:grid;gap:7px;font-weight:750}.auth-form input{width:100%;padding:14px 15px;border:1px solid var(--line);border-radius:13px;background:#fff;outline:none}.auth-form input:focus,.pin-input:focus{border-color:#3b82f6;box-shadow:0 0 0 4px rgba(59,130,246,.12)}.pin-input{width:100%;height:74px;text-align:center;font-size:38px;font-weight:900;letter-spacing:.32em;padding-left:.32em;border:2px solid var(--line);border-radius:18px;outline:none}.primary-btn,.secondary-btn{min-height:52px;border:0;border-radius:14px;padding:0 20px;font-weight:900;cursor:pointer;text-decoration:none;display:inline-grid;place-items:center}.primary-btn{background:var(--brand);color:#fff}.secondary-btn{background:#eef2f7;color:#111827}.alert{padding:13px 15px;border-radius:14px;margin:16px 0 0;font-weight:650;line-height:1.4}.alert.error{background:#fff1f0;color:var(--danger)}.alert.success{background:#ecfdf3;color:var(--ok)}
.table-header{justify-content:flex-start}.table-header .back-btn{font-size:25px;flex:0 0 auto}.table-header h1{font-size:32px}.table-meta{font-size:13px;color:var(--muted);max-width:70vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-dock{position:sticky;top:0;z-index:30;background:rgba(245,247,251,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(219,226,234,.8);padding:10px max(14px,calc((100vw - 1180px)/2 + 22px));display:flex;gap:10px;align-items:center}.search-box{height:52px;background:#fff;border:1px solid var(--line);border-radius:16px;display:flex;align-items:center;gap:9px;padding:0 10px 0 14px;flex:1;box-shadow:0 6px 20px rgba(15,23,42,.04)}.search-icon{font-size:22px;color:var(--muted)}.search-box input{border:0;outline:0;min-width:0;flex:1;font-size:16px;background:transparent}.clear-search{width:36px;height:36px;border:0;border-radius:10px;background:transparent;font-size:24px;color:var(--muted);cursor:pointer}.search-nav{display:none;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:6px}.search-nav.active{display:flex}.search-nav span{min-width:64px;text-align:center;font-size:13px;font-weight:850}.search-nav button{width:38px;height:38px;border:0;border-radius:10px;background:#eef2f7;font-size:19px;font-weight:900;cursor:pointer}.table-page{max-width:1180px;margin:0 auto;padding:14px 22px 48px}.table-section{margin:18px 0 28px;background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 8px 26px rgba(15,23,42,.045)}.table-section h2{margin:0;padding:18px 20px;background:#f8fafc;border-bottom:1px solid var(--line);font-size:20px;letter-spacing:-.02em}.table-scroll{overflow:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.table-scroll:focus{outline:2px solid #93c5fd;outline-offset:-2px}.docx-content table{width:100%;border-collapse:separate;border-spacing:0;min-width:max-content}.docx-content th,.docx-content td{padding:13px 15px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;line-height:1.42;min-width:150px;max-width:360px;white-space:normal}.docx-content th{position:sticky;top:0;background:#eff6ff;font-size:13px;text-transform:none;text-align:left;font-weight:900;color:#1e3a8a;z-index:2}.docx-content tr:last-child td{border-bottom:0}.docx-content th:last-child,.docx-content td:last-child{border-right:0}.docx-content td:first-child{font-weight:750;min-width:210px}.search-hit{background:#fde68a;color:inherit;padding:1px 0;border-radius:3px}.search-hit.current-hit{background:#fb923c;outline:3px solid rgba(251,146,60,.24)}.empty-state{padding:40px;text-align:center;background:#fff;border-radius:20px;color:var(--muted)}
.admin-wrap{max-width:900px;margin:0 auto;padding:18px 22px 50px;display:grid;gap:18px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow)}.admin-card h2{margin:0 0 4px}.file-drop{min-height:120px;border:2px dashed #bfcee0;border-radius:18px;background:#f8fafc;display:grid;place-items:center;align-content:center;gap:4px;text-align:center;cursor:pointer;font-weight:900}.file-drop input{position:absolute;opacity:0;pointer-events:none}.file-drop small{font-weight:600;color:var(--muted)}.meta-list{display:grid;gap:10px}.meta-list>div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.meta-list dt{color:var(--muted)}.meta-list dd{margin:0;font-weight:700;word-break:break-word}
@media(max-width:700px){.topbar{padding:22px 14px 10px}.home-grid{padding:12px 14px 28px;grid-template-columns:1fr;gap:12px}.big-tile,.big-tile:first-child{grid-column:auto;min-height:190px;border-radius:22px;padding:22px}.big-tile:first-child{min-height:250px}.tile-icon{font-size:44px}.table-header{padding:18px 14px 8px}.search-dock{padding:8px 10px;gap:7px}.search-box{height:48px}.search-nav{padding:4px}.search-nav span{min-width:52px}.search-nav button{width:34px;height:36px}.table-page{padding:8px 10px 34px}.table-section{border-radius:16px;margin:12px 0 18px}.table-section h2{font-size:18px;padding:15px}.docx-content th,.docx-content td{padding:11px 12px;min-width:138px;font-size:14px;max-width:280px}.docx-content td:first-child{min-width:190px}.auth-card{padding:22px;border-radius:22px}.meta-list>div{grid-template-columns:1fr}.table-meta{max-width:75vw}}

/* ===== ASF1 mobile fixed search/navigation ===== */
@media(max-width:700px){
    body.page-with-search{
        padding-top:66px;
    }

    .page-with-search .search-dock{
        position:fixed;
        top:0;
        left:0;
        right:0;
        z-index:1000;
        padding:8px 10px;
        background:rgba(245,247,251,.97);
        backdrop-filter:blur(14px);
        border-bottom:1px solid rgba(219,226,234,.95);
        box-shadow:0 4px 18px rgba(15,23,42,.08);
    }

    .page-with-search .search-box{
        width:100%;
        height:50px;
        flex:none;
    }

    .page-with-search .search-nav{
        position:fixed;
        right:12px;
        bottom:calc(12px + env(safe-area-inset-bottom));
        z-index:1100;
        padding:6px;
        border-radius:18px;
        box-shadow:0 10px 30px rgba(15,23,42,.18);
    }

    .page-with-search .search-nav.active{
        display:flex;
    }

    .page-with-search .search-nav span{
        min-width:58px;
    }

    .page-with-search .search-nav button{
        width:44px;
        height:44px;
        border-radius:12px;
        font-size:22px;
    }

    .page-with-search .table-page{
        padding-bottom:90px;
    }
}

/* ===== ASF1 desktop install button ===== */
.install-app-wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 22px 36px;
}

.install-app-btn{
    width:100%;
    min-height:58px;
    border:1px solid var(--line);
    border-radius:18px;
    background:#fff;
    color:var(--text);
    font-weight:900;
    font-size:17px;
    cursor:pointer;
    box-shadow:var(--shadow);
    transition:transform .15s ease, box-shadow .15s ease;
}

.install-app-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 34px rgba(15,23,42,.12);
}

.install-app-btn:disabled{
    opacity:.55;
    cursor:default;
    transform:none;
}

@media(max-width:700px){
    .install-app-wrap{
        display:none;
    }
}

/* ===== ASF1 mobile bottom search v2 ===== */
@media(max-width:700px){

    body.page-with-search{
        padding-top:0;
        padding-bottom:135px;
    }

    .page-with-search .search-dock{
        position:fixed;
        top:auto;
        bottom:0;
        left:0;
        right:0;
        z-index:1200;

        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:7px;

        padding:8px 10px calc(8px + env(safe-area-inset-bottom));

        background:rgba(245,247,251,.98);
        backdrop-filter:blur(14px);

        border-top:1px solid rgba(219,226,234,.95);
        border-bottom:0;

        box-shadow:0 -5px 22px rgba(15,23,42,.13);
    }

    .page-with-search .search-box{
        width:100%;
        height:50px;
        flex:none;
    }

    .page-with-search .search-nav{
        position:static;
        align-self:flex-end;

        margin:0;
        padding:4px;

        border-radius:14px;
        box-shadow:none;
    }

    .page-with-search .search-nav.active{
        display:flex;
    }

    .page-with-search .search-nav span{
        min-width:58px;
    }

    .page-with-search .search-nav button{
        width:42px;
        height:40px;
        border-radius:10px;
        font-size:21px;
    }

    .page-with-search .table-page{
        padding-bottom:145px;
    }
}

/* ===== ASF1 mobile bottom search single row ===== */
@media(max-width:700px){

    .page-with-search .search-dock{
        flex-direction:row;
        align-items:center;
        gap:7px;
    }

    .page-with-search .search-box{
        width:auto;
        min-width:0;
        flex:1 1 auto;
    }

    .page-with-search .search-nav{
        position:static;
        flex:0 0 auto;
        align-self:center;
        margin:0;
        white-space:nowrap;
    }

    .page-with-search .search-nav span{
        min-width:46px;
        font-size:12px;
    }

    .page-with-search .search-nav button{
        width:38px;
        height:40px;
    }

    body.page-with-search{
        padding-bottom:80px;
    }

    .page-with-search .table-page{
        padding-bottom:90px;
    }
}

@media(max-width:700px){
    .page-with-search .search-dock{
        bottom:var(--keyboard-offset, 0px);
    }
}

/* ===== ASF1 soft colored tables ===== */
.table-section{
    transition:box-shadow .18s ease, border-color .18s ease;
    box-shadow:
        0 8px 26px rgba(15,23,42,.045),
        0 0 22px var(--table-glow, transparent);
}

.table-section h2{
    background:
        linear-gradient(
            90deg,
            var(--table-key, #f8fafc),
            rgba(255,255,255,.92)
        );
    border-left:5px solid var(--table-head, #dbe2ea);
}

.table-section .docx-content th{
    background:
        linear-gradient(
            180deg,
            var(--table-key, #eff6ff),
            rgba(255,255,255,.92)
        );
}

.table-section .docx-content td{
    background:var(--table-cell, #fff);
}

.table-section .docx-content td:first-child{
    background:var(--table-key, #fff);
    font-weight:800;
}

.table-section .docx-content tr:hover td{
    box-shadow:inset 0 0 0 9999px rgba(255,255,255,.20);
}

.table-section:hover{
    box-shadow:
        0 10px 30px rgba(15,23,42,.07),
        0 0 28px var(--table-glow, transparent);
}
