@media (display-mode:standalone){body,html{height:calc(100vh + 1px);background-color:#101012}html body .m{min-height:100vh!important}}:root{--ink-950:#0e1014;--ink-900:#16181d;--ink-850:#1b1e24;--ink-700:#33373f;--ink-600:#4a4f58;--ink-500:#6b717c;--ink-400:#8d94a0;--ink-350:#a5abb6;--ink-300:#b4bac4;--ink-250:#d5d9df;--ink-200:#e3e6eb;--ink-150:#edeff3;--ink-100:#f5f6f8;--ink-050:#fafbfc;--white:#ffffff;--text-1:#0e1014;--text-2:#3a404a;--text-3:#6b717c;--text-4:#9aa0ab;--danger:#a32d2d;--danger-soft:#fcebeb;--ok:#27500a;--ok-soft:#eaf3de;--warn:#854f0b;--warn-soft:#faeeda;--hair:rgba(14,16,20,0.08);--hair-2:rgba(14,16,20,0.14);--e1:0 1px 2px rgba(14,16,20,0.04),0 2px 8px -2px rgba(14,16,20,0.06);--e2:0 1px 3px rgba(14,16,20,0.05),0 8px 24px -8px rgba(14,16,20,0.12);--r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;--ease:cubic-bezier(0.22,0.68,0.32,1);--d1:0.16s;--font:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace;--nav-h:58px;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0}body{overflow-x:hidden;font-family:var(--font);background:var(--ink-050);color:var(--text-1);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}figure,h1,h2,h3,h4,ol,p,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{border:0;background:none;cursor:pointer}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ink-950);outline-offset:2px;border-radius:4px}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);letter-spacing:-.01em}.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--text-4);text-transform:uppercase;font-weight:500}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{min-height:100dvh;display:flex;flex-direction:column}.shell-main{flex:1 1;width:100%;max-width:100%;padding:0 0 calc(var(--nav-h) + var(--safe-b) + 12px)}.wrap{width:100%;max-width:720px;margin:0 auto;padding:0 20px}.wrap-wide{max-width:1120px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:rgba(250,251,252,.88);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--hair)}.topbar-inner{display:flex;align-items:center;gap:12px;min-height:54px;padding:0 20px;max-width:720px;margin:0 auto}.topbar-title{min-width:0;flex:1 1;font-size:15px;font-weight:500;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--text-3);padding:6px 0;min-height:44px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-top:1px solid var(--hair);padding-bottom:var(--safe-b)}.tabbar a{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:var(--nav-h);font-size:11px;letter-spacing:.02em;color:var(--text-4);position:relative}.tabbar a[data-active=true]{color:var(--ink-950);font-weight:500}.tabbar .dot{position:absolute;top:12px;right:calc(50% - 18px);min-width:15px;height:15px;padding:0 4px;border-radius:var(--r-pill);background:var(--ink-950);color:#fff;font-size:10px;line-height:15px;text-align:center;font-weight:500}.sidebar{display:none}@media (min-width:900px){.shell{flex-direction:row}.tabbar{display:none}.shell-main{padding:0 0 64px;margin-left:248px}.topbar-inner,.wrap{max-width:1120px;padding:0 40px}.sidebar{display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:248px;border-right:1px solid var(--hair);background:var(--white);padding:22px 16px;gap:4px;z-index:50}}.brand{padding:4px 8px 22px}.brand-logo{display:block;height:26px;width:auto;max-width:170px;object-fit:contain}.brand-sub{margin-top:10px;font-size:10.5px;letter-spacing:.18em;color:var(--text-4)}.side-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:var(--r-sm);font-size:13.5px;color:var(--text-2);transition:background var(--d1) var(--ease)}.side-link:hover{background:var(--ink-100)}.side-link[data-active=true]{background:var(--ink-950);color:#fff}.side-group{padding:18px 10px 6px;font-size:10px;letter-spacing:.16em;color:var(--text-4)}.side-foot{margin-top:auto;border-top:1px solid var(--hair);padding-top:12px}.page-head{padding:26px 0 18px}.page-title{font-size:26px;line-height:1.25;font-weight:500;letter-spacing:-.02em;overflow-wrap:anywhere;word-break:break-word}.page-sub{margin-top:8px;font-size:13px;color:var(--text-3);line-height:1.6}.section{margin:26px 0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.section-title{font-size:13px;font-weight:500;color:var(--text-2)}.card{background:var(--white);border:1px solid var(--hair);border-radius:var(--r-md);overflow:hidden}.card-pad{padding:16px}.hairline{height:1px;background:var(--hair);border:0;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:42px;padding:0 16px;border-radius:var(--r-sm);font-size:14px;font-weight:500;letter-spacing:.01em;border:1px solid transparent;transition:background var(--d1) var(--ease),opacity var(--d1) var(--ease);white-space:nowrap}.btn-primary{background:var(--ink-950);color:#fff}.btn-primary:hover{background:var(--ink-850)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:var(--white);border-color:var(--hair-2);color:var(--text-1)}.btn-ghost:hover{background:var(--ink-100)}.btn-quiet{background:transparent;color:var(--text-3);padding:0 10px}.btn-quiet:hover{color:var(--ink-950)}.btn-danger{background:var(--white);border-color:var(--danger);color:var(--danger)}.btn-sm{height:34px;padding:0 12px;font-size:13px}.btn-block{width:100%}.btn:active{transform:translateY(.5px)}.field{display:block;margin-bottom:14px}.field-label{display:block;font-size:12px;color:var(--text-3);margin-bottom:6px}.input,.select,.textarea{width:100%;height:46px;padding:0 13px;border:1px solid var(--ink-200);border-radius:var(--r-sm);background:var(--white);font-size:16px;transition:border-color var(--d1) var(--ease)}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink-950);outline:none}.textarea{height:auto;min-height:120px;padding:12px 13px;line-height:1.65;resize:vertical}.hint{font-size:12px;color:var(--text-4);line-height:1.6;margin-top:6px}.error-text{font-size:13px;color:var(--danger);background:var(--danger-soft);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:14px}.badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:5px;font-size:11px;letter-spacing:.02em;background:var(--ink-150);color:var(--text-2);white-space:nowrap}.badge-dark{background:var(--ink-950);color:#fff}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.row{display:flex;align-items:center;gap:14px;padding:14px 16px;min-height:62px;position:relative;transition:background var(--d1) var(--ease)}.row+.row{border-top:1px solid var(--hair)}a.row:hover,button.row:hover{background:var(--ink-050)}.row-main{flex:1 1;min-width:0}.row-title{font-size:15px;font-weight:500;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-meta{gap:8px;margin-top:4px;overflow:hidden;white-space:nowrap}.row-meta,.row-side{display:flex;align-items:center;font-size:12px;color:var(--text-4)}.row-side{gap:10px;flex-shrink:0}.chev{color:var(--ink-300)}.chev,.ftype{flex-shrink:0}.ftype{width:38px;height:44px;border-radius:6px;border:1px solid var(--hair-2);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:9px;font-weight:500;letter-spacing:.02em;color:var(--text-3);background:var(--white)}.ftype[data-cat=pdf]{border-color:#e9c9c9;color:var(--danger)}.ftype[data-cat=slide]{border-color:#e2d6c2;color:var(--warn)}.ftype[data-cat=sheet]{border-color:#cfe0cf;color:var(--ok)}.empty{padding:46px 24px;text-align:center;border:1px dashed var(--ink-250);border-radius:var(--r-md);background:var(--white)}.empty-title{font-size:14px;font-weight:500;color:var(--text-2)}.empty-text{margin-top:6px;font-size:13px;color:var(--text-4);line-height:1.7}.segmented{display:flex;gap:2px;padding:3px;background:var(--ink-150);border-radius:var(--r-sm)}.segmented button{flex:1 1;height:34px;border-radius:6px;font-size:13px;color:var(--text-3)}.segmented button[data-active=true]{background:var(--white);color:var(--ink-950);font-weight:500;box-shadow:0 1px 2px rgba(14,16,20,.06)}.internal-block{border:1px solid var(--ink-950);border-radius:var(--r-md);overflow:hidden;background:var(--white)}.internal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;background:var(--ink-950);color:#fff;width:100%;text-align:left}.internal-head .label{font-size:12px;letter-spacing:.1em;font-weight:500}.internal-head .sub{font-size:11px;color:var(--ink-300);letter-spacing:.02em}.internal-banner{display:flex;align-items:center;gap:8px;padding:9px 14px;background:var(--ink-950);color:#fff;font-size:11.5px;letter-spacing:.06em}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-weight:500;font-size:11px;letter-spacing:.08em;color:var(--text-4);padding:10px 12px;white-space:nowrap}.table td,.table th{border-bottom:1px solid var(--hair)}.table td{padding:12px;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--ink-050)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.matrix{border-collapse:separate;border-spacing:0;font-size:13px;width:100%;table-layout:fixed}.matrix td,.matrix th{border-bottom:1px solid var(--hair);padding:0;height:46px}.matrix thead th{top:0;z-index:2;vertical-align:bottom;padding:10px 8px;border-bottom:1px solid var(--hair-2)}.matrix .col-name,.matrix thead th{position:-webkit-sticky;position:sticky;background:var(--white)}.matrix .col-name{left:0;z-index:3;padding:0 14px;text-align:left;font-weight:400;width:auto;min-width:260px;border-right:1px solid var(--hair)}.matrix thead .col-name{z-index:4}.matrix .cell{text-align:center;width:68px;min-width:68px}.matrix .name-vert{font-size:12.5px;color:var(--text-2);margin:0 auto;max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.check{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:7px;border:1px solid var(--ink-200);background:var(--white);transition:all var(--d1) var(--ease)}.check[data-on=true]{background:var(--ink-950);border-color:var(--ink-950);color:#fff}.check:disabled{opacity:.35;cursor:not-allowed}.auth-wrap{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:40px 24px calc(40px + var(--safe-b));max-width:430px;margin:0 auto}.auth-brand{margin-bottom:40px}.auth-mark{font-family:var(--mono);font-size:20px;letter-spacing:.3em;font-weight:500}.auth-line{margin-top:10px;font-size:10px;letter-spacing:.24em;color:var(--text-4)}.auth-title{font-size:22px;font-weight:500;letter-spacing:-.02em;margin-bottom:6px}.auth-sub{font-size:13px;color:var(--text-3);margin-bottom:26px;line-height:1.65}.status-chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:2px 8px;border-radius:var(--r-pill);border:1px solid var(--ink-200);color:var(--text-3);white-space:nowrap}.status-chip[data-s=done]{border-color:#c0dd97;color:var(--ok);background:var(--ok-soft)}.status-chip[data-s=doing]{border-color:#fac775;color:var(--warn);background:var(--warn-soft)}.status-chip[data-s=blocked]{border-color:#f7c1c1;color:var(--danger);background:var(--danger-soft)}.dot-live{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.upload-bar{height:3px;background:var(--ink-150);border-radius:2px;overflow:hidden}.upload-bar>span{display:block;height:100%;background:var(--ink-950);transition:width .2s linear}.notice-strip{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--hair-2);border-radius:var(--r-sm);background:var(--white);font-size:12.5px;color:var(--text-2);line-height:1.65}.notice-strip[data-tone=dark]{background:var(--ink-950);color:var(--ink-150);border-color:var(--ink-950)}.kv{display:grid;grid-template-columns:88px 1fr;grid-gap:10px 14px;gap:10px 14px;font-size:13px}.kv dt{color:var(--text-4);font-size:12px}.kv dd{margin:0;color:var(--text-1);word-break:break-word}.meta-line{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--text-4)}.grid-2{display:grid;grid-gap:12px;gap:12px}@media (min-width:640px){.grid-2{grid-template-columns:1fr 1fr}}.sheet-overlay{position:fixed;inset:0;z-index:90;background:rgba(14,16,20,.4);display:flex;align-items:flex-end;justify-content:center;padding:0}.sheet{width:100%;max-width:520px;background:var(--white);border-radius:16px 16px 0 0;padding:20px 20px calc(20px + var(--safe-b));max-height:88dvh;overflow-y:auto}.sheet-title{font-size:17px;font-weight:500;margin-bottom:4px}.sheet-sub{font-size:13px;color:var(--text-3);margin-bottom:18px;line-height:1.6}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}