:root{--ink:#202b2d;--ink-soft:#3e5052;--muted:#6b7b7c;--canvas:#f7f6f1;--bg:#f7f6f1;--surface:#fffefb;--surface-soft:#f4f2ec;--line:#202b2d1c;--line-strong:#202b2d2b;--blue-950:#14313a;--blue-900:#1c3f49;--blue-800:#26525d;--blue-700:#326471;--blue-600:#3f7885;--blue-500:#58919c;--blue-400:#7aabb4;--blue-300:#a5c7cd;--blue-200:#cddfe2;--blue-100:#e6eff0;--blue-50:#f2f7f7;--green-900:#1f3d30;--green-800:#2b5240;--green-700:#386a52;--green-600:#4a8064;--green-500:#629b7d;--green-200:#cfe2d6;--green-100:#e5efe9;--green-50:#f1f7f3;--amber-600:#8a6527;--amber-100:#f6eedb;--red-700:#96423f;--red-100:#f6e7e4;--shadow-xs:0 1px 2px #202b2d0a;--shadow-sm:0 1px 2px #202b2d0a, 0 3px 10px #202b2d0a;--shadow-md:0 12px 32px #202b2d14;--shadow-lg:0 24px 56px #202b2d1f;--ring:0 0 0 3px #58919c29;--radius:14px;--radius-sm:10px;--radius-lg:18px;--radius-xl:22px;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:var(--font-sans);--font-display:"Source Serif 4", "Iowan Old Style", Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--sidebar-w:262px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}img,svg{max-width:100%}a{color:var(--blue-700);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.015em;margin:0;font-weight:600;line-height:1.2}p{margin:0}button,input,select,textarea{font:inherit}hr{border:0;border-top:1px solid var(--line);margin:20px 0}::selection{background:var(--green-100);color:var(--green-900)}.btn{background:var(--surface);min-height:44px;color:var(--ink);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:11px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:background .16s,border-color .16s,color .16s,box-shadow .16s;display:inline-flex}.btn:hover{text-decoration:none}.btn-primary{background:var(--blue-800);color:#fff;box-shadow:var(--shadow-xs)}.btn-primary:hover{background:var(--blue-900)}.btn-green{background:var(--green-700);color:#fff;box-shadow:var(--shadow-xs)}.btn-green:hover{background:var(--green-800)}.btn-soft{background:var(--blue-50);color:var(--blue-800);border-color:var(--blue-200)}.btn-soft:hover{background:var(--blue-100)}.btn-ghost{color:var(--ink-soft);border-color:var(--line-strong);background:0 0}.btn-ghost:hover{background:var(--surface);border-color:var(--blue-500);color:var(--blue-900)}.btn-danger{background:var(--red-100);color:var(--red-700);border-color:#a832322e}.btn-danger:hover{background:#f6d6d6}.btn-sm{border-radius:8px;min-height:34px;padding:6px 12px;font-size:12.5px}.btn-block{width:100%}.btn[disabled],.btn.is-disabled{opacity:.55;cursor:not-allowed}.icon-btn{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--ink-soft);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;transition:background .16s,color .16s,border-color .16s;display:inline-flex}.icon-btn:hover{background:var(--blue-50);color:var(--blue-900);border-color:var(--blue-200)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-xs);padding:20px}.card-tight{padding:16px}.card-flat{box-shadow:none}.card-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.card-title{font-size:16px;font-weight:600}.card-sub{color:var(--muted);margin-top:3px;font-size:13px}.panel{border:1px solid var(--line);background:var(--surface-soft);border-radius:var(--radius-sm);padding:16px}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{flex-direction:column;gap:16px;display:flex}.stack-sm{flex-direction:column;gap:10px;display:flex}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between;align-items:center;gap:16px;display:flex}.wrap{flex-wrap:wrap}.muted{color:var(--muted)}.small{font-size:12.5px}.tiny{font-size:11.5px}.strong{font-weight:700}.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.mt-0{margin-top:0}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.pill{background:var(--blue-50);color:var(--blue-800);border:1px solid var(--blue-200);letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-flex}.pill-green{background:var(--green-50);color:var(--green-800);border-color:var(--green-200)}.pill-amber{background:var(--amber-100);color:var(--amber-600);border-color:#8a65272e}.pill-red{background:var(--red-100);color:var(--red-700);border-color:#96423f29}.pill-grey{background:var(--surface-soft);color:var(--ink-soft);border-color:var(--line)}.pill-lg{padding:7px 13px;font-size:12.5px}.form-grid{gap:14px;display:grid}.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.field{flex-direction:column;gap:6px;display:flex}.field label,.label{color:var(--ink-soft);font-size:12.5px;font-weight:600}.field .hint{color:var(--muted);font-size:11.5px}.input,.select,.textarea{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:44px;color:var(--ink);border-radius:9px;padding:10px 13px;font-size:15px;transition:border-color .16s,box-shadow .16s}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:36px}.textarea{resize:vertical;min-height:96px}.input:focus,.select:focus,.textarea:focus{border-color:var(--blue-500);box-shadow:var(--ring);outline:none}.input::placeholder,.textarea::placeholder{color:#97a5a4}.check{color:var(--ink-soft);align-items:flex-start;gap:9px;font-size:13px;display:flex}.check input{width:18px;height:18px;accent-color:var(--green-600);margin-top:2px}.narrow{max-width:520px}.notice{border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:12px;padding:13px 15px;font-size:13.5px;line-height:1.5;display:flex}.notice-icon{flex:none;margin-top:1px}.notice-info{background:var(--blue-50);border-color:var(--blue-200);color:var(--blue-900)}.notice-success{background:var(--green-50);border-color:var(--green-200);color:var(--green-900)}.notice-warning{background:var(--amber-100);color:#7a5110;border-color:#b7791f38}.notice-danger{background:var(--red-100);color:var(--red-700);border-color:#a832322e}.table-wrap{border:1px solid var(--line);border-radius:10px;width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:640px;font-size:13.5px}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}.table th{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:var(--surface-soft);font-size:11px;font-weight:700}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#f0f7fc99}.table .num{text-align:right;font-variant-numeric:tabular-nums}.app-shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{background:var(--blue-950);color:#d7e3e4;z-index:60;flex-direction:column;gap:18px;height:100vh;padding:22px 16px 18px;display:flex;position:sticky;top:0;overflow-y:auto}.side-brand{color:#fff;align-items:center;gap:11px;padding:2px 8px 6px;text-decoration:none;display:flex}.side-brand:hover{text-decoration:none}.brand-logo{border-radius:11px;flex:none;width:38px;height:38px;display:block}.side-brand-text{flex-direction:column;line-height:1.1;display:flex}.side-brand-name{font-family:var(--font-display);letter-spacing:.02em;font-size:21px;font-weight:600}.side-brand-sub{text-transform:uppercase;letter-spacing:.13em;color:#8fb3d1;margin-top:3px;font-size:9.5px}.side-member{background:#ffffff0f;border:1px solid #ffffff17;border-radius:10px;align-items:center;gap:10px;padding:11px;display:flex}.avatar{background:var(--green-700);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:14px;font-weight:600;display:inline-flex}.side-member-name{color:#fff;font-size:13.5px;font-weight:600;line-height:1.25}.side-member-meta{color:#9fc0d9;margin-top:2px;font-size:11px}.side-nav{flex-direction:column;gap:4px;display:flex}.side-label{letter-spacing:.14em;text-transform:uppercase;color:#7da4c3;margin-top:8px;padding:4px 10px 2px;font-size:9.5px}.side-link{color:#c7dcec;border:1px solid #0000;border-radius:8px;align-items:center;gap:11px;padding:10px 11px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.side-link:hover{color:#fff;background:#ffffff14;text-decoration:none}.side-link.active{color:#fff;background:#ffffff1a;border-color:#ffffff1a;font-weight:600}.side-link .side-icon{color:#93b3b8;display:inline-flex}.side-link.active .side-icon{color:#a9d4c0}.side-spacer{flex:1}.side-card{background:#ffffff0f;border:1px solid #ffffff17;border-radius:10px;padding:13px}.side-card-label{text-transform:uppercase;letter-spacing:.1em;color:#93b8d3;font-size:10px}.side-card-value{font-family:var(--font-display);color:#fff;margin-top:3px;font-size:21px;font-weight:600}.side-foot{border-top:1px solid #ffffff1a;flex-direction:column;gap:10px;padding-top:13px;display:flex}.side-lang{background:#ffffff12;border:1px solid #ffffff14;border-radius:999px;gap:4px;padding:3px;display:flex}.side-lang a{text-align:center;color:#a9c8de;border-radius:999px;flex:1;padding:5px 8px;font-size:11px;font-weight:600;text-decoration:none}.side-lang a.active{color:var(--blue-900);background:#fff}.side-logout{color:#a9c8de;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:12.5px;display:flex}.side-logout:hover{color:#fff;background:#ffffff12}.app-main{flex-direction:column;min-width:0;min-height:100vh;display:flex}.topbar{z-index:40;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#f7f6f1e6;align-items:center;gap:14px;padding:13px 26px;display:flex;position:sticky;top:0}.topbar-title{font-family:var(--font-display);letter-spacing:-.005em;color:var(--ink);font-size:16px;font-weight:600}.topbar-actions{align-items:center;gap:9px;margin-left:auto;display:flex}.mobile-menu-btn{display:none}.content{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:26px}.content-wide{max-width:1320px}.sidebar-backdrop{display:none}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px;display:flex}.page-title{letter-spacing:-.02em;font-size:clamp(24px,3.3vw,32px);font-weight:600}.page-sub{color:var(--muted);max-width:660px;margin-top:5px;font-size:13.5px}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--green-700);align-items:center;gap:7px;margin-bottom:8px;font-size:10.5px;font-weight:700;display:inline-flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:13px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs);padding:16px 17px}.stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px;font-weight:600}.stat-value{font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink);margin-top:5px;font-size:clamp(21px,2.6vw,27px);font-weight:600}.stat-value.green{color:var(--green-800)}.stat-value.blue{color:var(--blue-800)}.stat-value.amber{color:var(--amber-600)}.stat-note{color:var(--muted);margin-top:3px;font-size:11.5px}.task-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-xs);overflow:hidden}.task-top{align-items:center;gap:12px;padding:17px 19px 0;display:flex}.task-icon{border-radius:10px;flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.task-icon.blue{background:var(--blue-100);color:var(--blue-800)}.task-icon.green{background:var(--green-100);color:var(--green-800)}.task-body{padding:12px 19px 19px}.task-title{letter-spacing:-.015em;font-size:16px;font-weight:600}.task-desc{color:var(--muted);margin-top:5px;font-size:13px}.task-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.task-actions{flex-wrap:wrap;gap:9px;margin-top:15px;display:flex}.lang-switch{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:3px;padding:3px;display:inline-flex}.lang-switch a{color:var(--muted);border-radius:999px;padding:5px 11px;font-size:11.5px;font-weight:600;text-decoration:none}.lang-switch a.active{background:var(--blue-800);color:#fff}.lang-switch.small a{padding:4px 9px;font-size:10.5px}.divider{background:var(--line);height:1px;margin:18px 0}.dot{background:currentColor;border-radius:50%;width:7px;height:7px;display:inline-block}.code{font-family:var(--font-mono);background:var(--blue-50);border:1px dashed var(--blue-300);color:var(--blue-800);border-radius:6px;padding:2px 8px;font-size:13px}.copy-row{align-items:stretch;gap:8px;display:flex}.copy-row .input{font-size:13px}.hidden{display:none!important}.auth-page{place-items:center;min-height:calc(100vh - 90px);padding:48px 20px 64px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(100%,430px);box-shadow:var(--shadow-sm);padding:28px}.auth-card h1{margin-bottom:6px;font-size:27px}.auth-sub{color:var(--muted);font-size:13px;line-height:1.6}.auth-card .notice{margin-top:16px}.auth-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:12.5px;display:flex}.auth-links a{color:var(--blue-800);font-weight:600}.auth-foot{border-top:1px solid var(--line);text-align:center;color:var(--muted);margin-top:20px;padding-top:16px;font-size:12px}.auth-foot a{color:var(--blue-800);font-weight:600}@media (width<=520px){.auth-page{padding:28px 14px 44px}.auth-card{padding:21px}}@media (width<=980px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{width:min(88vw,312px);transition:transform .24s cubic-bezier(.32,.72,0,1);position:fixed;inset:0 auto 0 0;transform:translate(-104%);box-shadow:0 18px 60px #051b3159}.app-shell.nav-open .sidebar{transform:translate(0)}.sidebar-backdrop{z-index:50;opacity:0;pointer-events:none;background:#051b317a;transition:opacity .2s;display:block;position:fixed;inset:0}.app-shell.nav-open .sidebar-backdrop{opacity:1;pointer-events:auto}.mobile-menu-btn{display:inline-flex}.topbar{padding:11px 16px}.content{padding:20px 16px 34px}.topbar-title{text-overflow:ellipsis;white-space:nowrap;max-width:46vw;font-size:14px;overflow:hidden}}@media (width<=640px){.grid-2,.grid-3,.grid-4,.form-grid.cols-2{grid-template-columns:minmax(0,1fr)}.page-head{align-items:flex-start}.card{padding:17px}.btn{min-height:42px}.hide-mobile{display:none!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.skip-link[data-astro-cid-z4jru4n3]{z-index:999;background:var(--blue-800);color:#fff;border-radius:8px;padding:8px 14px;font-size:13px;position:absolute;top:8px;left:-9999px}.skip-link[data-astro-cid-z4jru4n3]:focus{left:8px}
