@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-ext-wght-normal-DHTKMUil.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-cyrillic-wght-normal-B1g8a0vD.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-greek-wght-normal-BpXpdlRW.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-vietnamese-wght-normal-BsaNuasd.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-ext-wght-normal-BVZ5su8S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/assets/source-serif-4-latin-wght-normal-DMe4EKeb.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy-950:#06172a;--navy-900:#0a2540;--navy-800:#0d3558;--sea:#14689b;--sea-dark:#0d4f78;--lagoon:#3d9fd0;--sky-100:#e7f1f8;--sky-50:#f1f7fb;--bg:#f6f9fc;--white:#fff;--ink:#0f2438;--ink-soft:#4a6278;--muted:#7a93a8;--line:#dce7ef;--line-strong:#bfd2e0;--danger:#b73a4a;--ok:#17806a;--shadow-lg:0 24px 60px #06172a61;--font-display:"Source Serif 4 Variable", Georgia, "Times New Roman", serif;--font-body:"Inter Variable", "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "SFMono-Regular", Consolas, monospace}*,:before,:after{box-sizing:border-box;border-radius:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.15}h1,h2,h3,h4,.stat strong{font-feature-settings:"locl" 0}a{color:var(--sea);text-decoration:none}a:hover{color:var(--sea-dark)}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--lagoon);outline-offset:2px}.container{width:min(1180px,100% - 48px);margin:0 auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.center{text-align:center}.mono{font-family:var(--font-mono);font-size:.92rem}.link-btn{color:var(--sea);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.boot{place-items:center;min-height:60vh;display:grid}.spinner{border:2px solid var(--line-strong);border-top-color:var(--sea);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin;display:inline-block}.spin{animation:.9s linear infinite spin}@keyframes spin{to{rotate:360deg}}.site-header{z-index:50;background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:16px;height:80px;display:flex}.logo{align-items:center;display:inline-flex}.logo img{width:auto;height:52px;display:block}.nav{align-items:center;gap:6px;display:flex}.nav-link{color:var(--ink-soft);border-bottom:2px solid #0000;align-items:center;gap:7px;padding:8px 12px;font-size:.92rem;font-weight:500;transition:color .2s,border-color .2s;display:inline-flex}.nav-link:hover{color:var(--navy-900)}.nav-link.active{color:var(--navy-900);border-bottom-color:var(--sea)}.nav-pill{color:var(--ink-soft);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-left:0;padding:8px 12px;font-size:.92rem;font-weight:500;transition:color .2s,border-color .2s;display:inline-flex}.nav-pill:hover{color:var(--navy-900);border-bottom-color:var(--line-strong)}.hero,.banner,.auth-stage{color:var(--white);background:radial-gradient(900px 480px at 88% -12%,#3d9fd03d,#0000 62%),linear-gradient(#081c33 0%,#0b2c4d 100%);position:relative;overflow:hidden}.hero{padding:96px 0 92px}.banner{padding:56px 0 52px}.banner-tall{padding:90px 0}.hero-inner,.banner-inner{z-index:2;position:relative}.backdrop{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 55%);mask-image:linear-gradient(#0000 0%,#000 55%)}.backdrop:before{content:"";background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:72px 72px;position:absolute;inset:0}.contour{will-change:transform;width:200%;height:100%;display:block;position:absolute;bottom:0;left:0}.contour path{fill:none;stroke:#87c5e838;stroke-width:1px;vector-effect:non-scaling-stroke}.hero-title{letter-spacing:-.02em;max-width:22ch;margin:0;font-size:clamp(2.1rem,4.4vw,3.4rem);font-weight:600;line-height:1.1}.word{vertical-align:top;margin-right:.22em;padding:.06em 0 .16em;display:inline-block;overflow:hidden}.word-inner{display:inline-block}.hero-sub{color:#ffffffc2;max-width:56ch;margin:22px 0 0;font-size:1.1rem}.searchbar{background:var(--white);align-items:center;max-width:560px;height:54px;margin-top:34px;padding:0 16px;transition:box-shadow .2s;display:flex;position:relative}.searchbar:focus-within{box-shadow:0 0 0 3px #3d9fd08c}.searchbar-icon{color:var(--sea);flex:none}.searchbar input{min-width:0;height:100%;font:inherit;color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding:0 14px;font-size:1rem}.searchbar input::placeholder{color:var(--muted)}.searchbar kbd{border:1px solid var(--line-strong);min-width:24px;height:24px;font-family:var(--font-mono);color:var(--muted);background:var(--sky-50);flex:none;place-items:center;font-size:.78rem;display:grid}.searchbar-clear{background:var(--sky-100);width:30px;height:30px;color:var(--navy-900);border:0;flex:none;place-items:center;display:grid}.searchbar-clear:hover{background:#d3e5f1}.hero-meta{color:#ffffffad;flex-wrap:wrap;gap:8px 30px;margin:24px 0 0;font-size:.9rem;display:flex}.hero-meta b{color:var(--white);font-variant-numeric:tabular-nums;font-weight:600}.banner-title{letter-spacing:-.02em;font-size:clamp(2rem,4vw,2.9rem);font-weight:600}.banner-sub{color:#ffffffc2;max-width:56ch;margin:12px 0 0;font-size:1.05rem}.banner-actions{gap:12px;margin-top:24px;display:flex}.banner-app{align-items:center;gap:20px;margin-top:18px;display:flex}.banner-meta{color:#ffffffb3;flex-wrap:wrap;gap:6px 24px;margin-top:8px;font-size:.92rem;display:flex}.meta-link{color:var(--white);text-underline-offset:3px;align-items:center;gap:7px;font-weight:500;-webkit-text-decoration:underline #fff6;text-decoration:underline #fff6;display:inline-flex}.meta-link:hover{color:var(--white);-webkit-text-decoration-color:var(--white);text-decoration-color:var(--white)}.eyebrow{margin-bottom:6px;display:block}.back-link{color:#fffc;align-items:center;gap:7px;font-size:.9rem;font-weight:500;display:inline-flex}.back-link:hover{color:var(--white)}.section{padding:56px 0 96px}.section-head{border-bottom:2px solid var(--navy-900);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:18px;display:flex}.section-head h2{font-size:1.7rem}.section-head p{margin:4px 0 0;font-size:.92rem}.app-list{display:block}.app-row{border-bottom:1px solid var(--line);color:var(--ink);grid-template-columns:44px minmax(0,1fr) 110px 150px 22px;align-items:center;gap:24px;padding:24px 14px;transition:background .2s;display:grid}.app-row:hover{background:var(--sky-100);color:var(--ink)}.app-row-main{min-width:0}.app-row-main h3{color:var(--navy-900);font-size:1.2rem}.app-row-main p{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:.94rem;display:-webkit-box;overflow:hidden}.app-row-meta{color:var(--muted);white-space:nowrap;font-size:.86rem}.app-row-go{color:var(--line-strong);transition:translate .25s,color .25s}.app-row:hover .app-row-go{color:var(--sea);translate:4px}.card{border-bottom:1px solid var(--line);margin:0 0 44px;padding:0 0 44px}.card:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.card-title{color:var(--navy-900);margin-bottom:18px;font-size:1.45rem}.card-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.card-title-row .card-title{margin:0}.avatar{color:var(--white);font-family:var(--font-body);letter-spacing:.02em;flex:none;place-items:center;font-weight:600;display:grid}.avatar-sm{width:34px;height:34px;font-size:.78rem}.avatar-md{width:44px;height:44px;font-size:.95rem}.avatar-lg{width:60px;height:60px;font-size:1.2rem}.skeleton{background:linear-gradient(100deg,#e3edf4 30%,#f1f6fa 50%,#e3edf4 70%) 0 0/220% 100%;animation:1.4s ease-in-out infinite shimmer;display:block}@keyframes shimmer{to{background-position:-220% 0}}.skeleton-row{pointer-events:none;grid-template-columns:44px minmax(0,1fr)}.sk-avatar{width:44px;height:44px}.sk-line{height:13px;margin-top:10px}.sk-title{width:40%;height:20px;margin-top:0}.sk-short{width:45%}.state{justify-items:start;gap:8px;padding:40px 0;display:grid}.state h3{color:var(--navy-900);font-size:1.3rem}.state p{color:var(--ink-soft);max-width:50ch;margin:0 0 6px}.state-icon{background:var(--sky-100);width:48px;height:48px;color:var(--sea);place-items:center;margin-bottom:4px;display:grid}.card .state{padding:16px 0}.btn{letter-spacing:.005em;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:8px;height:42px;padding:0 20px;font-size:.92rem;font-weight:600;transition:background .2s,color .2s,opacity .2s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{color:var(--white);background:var(--sea)}.btn-primary:not(:disabled):hover{color:var(--white);background:var(--sea-dark)}.btn-soft{color:var(--navy-900);background:var(--sky-100)}.btn-soft:not(:disabled):hover{color:var(--navy-900);background:#d6e7f3}.btn-light{color:var(--navy-900);background:var(--white)}.btn-light:hover{color:var(--navy-900);background:var(--sky-100)}.btn-danger{color:var(--white);background:var(--danger)}.btn-danger:not(:disabled):hover{color:var(--white);background:#98303e}.btn-sm{height:36px;padding:0 14px;font-size:.86rem}.btn-block{width:100%}.icon-btn{width:38px;height:38px;color:var(--ink-soft);background:0 0;border:0;place-items:center;transition:background .2s,color .2s;display:inline-grid}.icon-btn:hover{background:var(--sky-100);color:var(--navy-900)}.icon-btn.is-danger:hover{color:var(--danger);background:#f8e3e6}.link-action{color:var(--sea);text-underline-offset:4px;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:.88rem;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .2s,color .2s;display:inline-flex}.link-action:hover{color:var(--sea-dark);text-decoration-color:currentColor}.link-action.is-strong{font-weight:600}.segmented{gap:24px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:6px 0;font-size:.88rem;font-weight:600;transition:color .2s,border-color .2s}.segmented button:hover{color:var(--ink)}.segmented button.is-on{color:var(--navy-900);border-bottom-color:var(--sea)}.detail-grid{grid-template-columns:minmax(0,1fr) 400px;align-items:start;gap:64px;padding:56px 0 96px;display:grid}.detail-main,.detail-aside{min-width:0}.section>.detail-grid{padding:0}.detail-aside{border-left:1px solid var(--line);padding-left:48px}.sticky{position:sticky;top:104px}.aside-note{color:var(--muted);margin:18px 0 0;font-size:.82rem}.doc-list{margin:0;padding:0;list-style:none}.doc-row{border-bottom:1px solid var(--line);grid-template-columns:44px minmax(0,1fr);align-items:center;gap:6px 14px;padding:16px 0;display:grid}.doc-row:first-child{border-top:1px solid var(--line)}.doc-row .file-icon{grid-row:1/span 2;align-self:start}.doc-info{flex-direction:column;grid-column:2;min-width:0;display:flex}.doc-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.doc-info small{color:var(--muted)}.doc-actions{grid-column:2;align-items:center;gap:20px;display:flex}.doc-actions .icon-btn{width:30px;height:30px;margin-left:auto}.file-icon{background:var(--sky-100);width:44px;height:44px;color:var(--sea);flex:none;align-content:center;place-items:center;gap:1px;display:grid}.file-icon em{letter-spacing:.06em;text-transform:uppercase;font-size:.55rem;font-style:normal;font-weight:700;line-height:1}.viewer{background:var(--white);width:min(1120px,96vw);height:min(88vh,940px);box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.viewer-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.viewer-bar .file-icon{width:40px;height:40px}.viewer-title{flex-direction:column;flex:200px;min-width:0;display:flex}.viewer-title strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viewer-title small{color:var(--muted)}.viewer-stage{background:#0b1e33;flex:1;place-items:center;min-height:0;display:grid;position:relative}.viewer-stage iframe{background:var(--white);opacity:0;border:0;width:100%;height:100%;transition:opacity .35s}.viewer-stage img{object-fit:contain;opacity:0;max-width:100%;max-height:100%;transition:opacity .35s}.viewer-stage.is-loaded iframe,.viewer-stage.is-loaded img{opacity:1}.viewer-loading{color:#b8d3e6;align-items:center;gap:12px;display:flex;position:absolute}.rich{color:var(--ink-soft)}.rich p{margin:0 0 14px;line-height:1.75}.rich p:last-child{margin-bottom:0}.rich a{text-underline-offset:3px;word-break:break-word;font-weight:500;-webkit-text-decoration:underline #14689b66;text-decoration:underline #14689b66}.rich code{font-family:var(--font-mono);background:var(--sky-100);color:var(--navy-900);padding:2px 6px;font-size:.87em}.rich strong{color:var(--ink);font-weight:600}.steps{margin:4px 0 18px;padding:0;list-style:none}.step{gap:16px;padding-bottom:24px;display:flex;position:relative}.step:last-child{padding-bottom:0}.step:not(:last-child):before{content:"";background:var(--line-strong);width:1px;position:absolute;top:36px;bottom:4px;left:15px}.step-num{border:1.5px solid var(--navy-900);width:32px;height:32px;color:var(--navy-900);background:var(--bg);font-family:var(--font-body);flex:none;place-items:center;font-size:.85rem;font-weight:600;display:grid}.step-body{color:var(--ink);min-width:0;padding-top:4px;line-height:1.65}.step-body p{color:var(--ink-soft);margin:8px 0 0}.bullets{gap:8px;margin:0 0 14px;padding-left:2px;list-style:none;display:grid}.bullets li{padding-left:22px;position:relative}.bullets li:before{content:"";background:var(--sea);width:7px;height:1.5px;position:absolute;top:.78em;left:4px}.code{background:#0b1e33;margin:6px 0 18px;position:relative}.code pre{color:#d2e6f4;font-family:var(--font-mono);margin:0;padding:20px 20px 20px 22px;font-size:.87rem;line-height:1.7;overflow-x:auto}.code code{color:inherit;font-size:inherit;background:0 0;padding:0}.code-copy{color:#a8cde4;background:0 0;border:1px solid #87c5e84d;align-items:center;gap:6px;padding:5px 10px;font-size:.76rem;font-weight:500;transition:background .2s;display:inline-flex;position:absolute;top:10px;right:10px}.code-copy:hover{background:#87c5e824}.modal-root{z-index:90;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-backdrop{background:#06172a9e;position:absolute;inset:0}.modal-panel{background:var(--white);width:min(460px,100%);box-shadow:var(--shadow-lg);outline:none;position:relative}.modal-panel.is-bare{width:auto;box-shadow:none;background:0 0;max-width:100%}.modal-head{justify-content:space-between;align-items:center;gap:12px;padding:22px 24px 0;display:flex}.modal-head h2{font-size:1.3rem}.modal-body{padding:14px 24px 24px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.confirm{align-items:flex-start;gap:14px;display:flex}.confirm p{color:var(--ink-soft);margin:4px 0 0}.confirm-icon{width:42px;height:42px;color:var(--danger);background:#f8e3e6;flex:none;place-items:center;display:grid}.toasts{z-index:120;gap:10px;width:min(380px,100vw - 44px);display:grid;position:fixed;bottom:22px;right:22px}.toast{background:var(--white);border-left:4px solid var(--ok);align-items:center;gap:12px;padding:14px 14px 14px 16px;display:flex;box-shadow:0 10px 30px #06172a38}.toast-error{border-left-color:var(--danger)}.toast-icon{color:var(--ok);flex:none}.toast-error .toast-icon{color:var(--danger)}.toast-text{flex:1;font-size:.92rem;font-weight:500}.toast-close{width:28px;height:28px;color:var(--muted);background:0 0;border:0;flex:none;place-items:center;display:grid}.toast-close:hover{background:var(--sky-100);color:var(--ink)}.field{margin-bottom:22px;display:block}.field>span{color:var(--ink);justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:.85rem;font-weight:600;display:flex}.field input,.field textarea{border:1px solid var(--line-strong);background:var(--white);width:100%;font:inherit;color:var(--ink);padding:12px 14px;transition:border-color .2s,box-shadow .2s}.field textarea{resize:vertical;min-height:120px;line-height:1.6}.field input:focus,.field textarea:focus{border-color:var(--sea);outline:none;box-shadow:0 0 0 3px #14689b29}.field input::placeholder,.field textarea::placeholder{color:#9cb2c3}.counter{color:var(--muted);font-size:.76rem;font-style:normal;font-weight:500}.hint{color:var(--muted);margin-top:8px;font-size:.82rem;line-height:1.5;display:block}.input-wrap{position:relative}.input-wrap input{padding-left:44px;padding-right:44px}.input-icon{color:var(--sea);pointer-events:none;position:absolute;top:50%;left:14px;translate:0 -50%}.input-toggle{width:34px;height:34px;color:var(--muted);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:50%;right:6px;translate:0 -50%}.input-toggle:hover{background:var(--sky-100);color:var(--navy-900)}.alert{align-items:flex-start;gap:10px;margin-bottom:18px;padding:12px 14px;font-size:.9rem;line-height:1.5;display:flex}.alert svg{flex:none;margin-top:2px}.alert-error{color:#8c2736;border-left:3px solid var(--danger);background:#f8e3e6}.form-actions{align-items:center;gap:14px;margin-top:4px;display:flex}.preview{border:1px dashed var(--line-strong);background:var(--white);min-height:200px;padding:22px}.auth-stage{place-items:center;min-height:calc(100vh - 200px);padding:72px 20px 80px;display:grid}.auth-card{z-index:2;text-align:left;width:min(400px,100%);color:var(--white);position:relative}.auth-card h1{font-size:2.1rem}.auth-sub{color:#ffffffbd;margin:10px 0 30px;font-size:.98rem}.auth-form{text-align:left}.auth-card .field>span{color:#ffffffe6}.auth-card .field input{border-color:var(--white)}.auth-card .field input:focus{border-color:var(--white);box-shadow:0 0 0 3px #3d9fd08c}.auth-card .btn-primary{background:var(--white);color:var(--navy-900)}.auth-card .btn-primary:not(:disabled):hover{background:var(--sky-100);color:var(--navy-900)}.auth-foot{color:#ffffffb3;margin:24px 0 0;font-size:.9rem}.auth-foot a{color:var(--white);text-underline-offset:3px;font-weight:600;text-decoration:underline}.dropzone{text-align:center;border:1px dashed var(--line-strong);background:var(--white);cursor:pointer;justify-items:center;gap:4px;margin-bottom:18px;padding:26px 18px;transition:border-color .25s,background .25s;display:grid}.dropzone:hover,.dropzone.is-over{border-color:var(--sea);background:var(--sky-50)}.dropzone strong{color:var(--navy-900);font-size:.95rem}.dropzone small{color:var(--muted)}.dropzone-icon{background:var(--sky-100);width:44px;height:44px;color:var(--sea);place-items:center;margin-bottom:4px;transition:translate .3s;display:grid}.dropzone:hover .dropzone-icon,.dropzone.is-over .dropzone-icon{translate:0 -3px}.upload-list{margin:0 0 18px;padding:0;list-style:none}.upload-item{border-bottom:1px solid var(--line);padding:12px 0}.upload-line{justify-content:space-between;align-items:center;gap:10px;font-size:.86rem;display:flex}.upload-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.upload-meta{color:var(--ink-soft);flex:none;align-items:center;gap:6px;display:inline-flex}.upload-meta em{color:var(--muted);font-style:normal}.upload-item.is-done .upload-meta{color:var(--ok)}.upload-item.is-error .upload-meta{color:var(--danger)}.progress{background:#dce7ef;height:3px;margin-top:10px;overflow:hidden}.progress span{background:var(--sea);height:100%;transition:width .25s ease-out;display:block}.is-done .progress span{background:var(--ok)}.is-error .progress{display:none}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-bottom:48px;display:grid}.stat{border-left:1px solid var(--line);padding:26px 28px}.stat:first-child{border-left:0;padding-left:0}.stat strong{font-family:var(--font-display);color:var(--navy-900);font-variant-numeric:tabular-nums;font-size:2.3rem;font-weight:600;line-height:1.1;display:block}.stat strong.stat-text{padding-top:.55rem;font-size:1.5rem}.stat span{color:var(--muted);font-size:.88rem}.table-card{border-bottom:0;margin:0;padding:0}.admin-head,.admin-row{grid-template-columns:minmax(0,2fr) .7fr .8fr auto;align-items:center;gap:12px;padding:14px 6px;display:grid}.admin-head{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;border-bottom:2px solid var(--navy-900);font-size:.74rem;font-weight:600}.admin-list{margin:0;padding:0;list-style:none}.admin-row{border-bottom:1px solid var(--line);transition:background .2s}.admin-row:hover{background:var(--sky-100)}.admin-app{align-items:center;gap:14px;min-width:0;display:flex}.admin-app>div{flex-direction:column;min-width:0;display:flex}.admin-app a{color:var(--navy-900);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.admin-app small{color:var(--muted)}.admin-cell{color:var(--ink-soft);font-size:.92rem}.admin-actions{justify-content:flex-end;gap:2px;display:flex}.site-footer{background:var(--white);border-top:1px solid var(--line);color:var(--ink-soft);padding:28px 0}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.footer-inner p{margin:0;font-size:.9rem}.footer-inner small{color:var(--muted)}.site-footer .logo img{height:44px}@media (width<=980px){.detail-grid{grid-template-columns:minmax(0,1fr);gap:44px}.detail-aside{border-left:0;border-top:1px solid var(--line);padding-top:44px;padding-left:0}.sticky{position:static}.app-row{grid-template-columns:44px minmax(0,1fr) 110px 22px}.app-row-date{display:none}}@media (width<=720px){.container{width:calc(100% - 32px)}.hero{padding:64px 0}.banner{padding:44px 0 40px}.stats{grid-template-columns:1fr}.stat{border-left:0;border-top:1px solid var(--line);padding-left:0}.stat:first-child{border-top:0}.nav-pill span,.nav-link span{display:none}.nav-link,.nav-pill{padding:10px 12px}.logo img{height:40px}.banner-app{gap:14px}.app-row{grid-template-columns:44px minmax(0,1fr) 22px;gap:16px;padding:20px 4px}.app-row-meta,.admin-head{display:none}.admin-row{grid-template-columns:minmax(0,1fr) auto}.admin-cell{display:none}.footer-inner{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
