:root{--ink:#17202b;--muted:#68737f;--line:#e5e8e6;--paper:#fff;--wash:#f5f7f4;--green:#9bc93c;--green-dark:#709d21;--navy:#203b52;--blue:#dcebf2;--orange:#f0a94a;--red:#c54f4f;--shadow:0 16px 45px rgba(26,45,53,.08);--radius:18px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fbfcfa;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Yu Gothic",sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button,a{touch-action:manipulation}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
h1,h2,h3,p{margin-top:0}
h1{font-size:clamp(2rem,4vw,3.6rem);line-height:1.16;letter-spacing:-.04em;margin-bottom:14px}
h2{font-size:1.45rem;line-height:1.3;letter-spacing:-.02em;margin-bottom:8px}
h3{line-height:1.4}
.muted{color:var(--muted)}
.eyebrow{margin:0 0 8px;color:#719124;font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.required{font-size:.7rem;color:var(--red)}
.topbar{height:78px;position:sticky;top:0;z-index:50;display:flex;align-items:center;padding:0 4vw;border-bottom:1px solid rgba(229,232,230,.85);background:rgba(255,255,255,.93);backdrop-filter:blur(16px)}
.brand{display:inline-flex;align-items:center;gap:10px;min-width:210px;line-height:1}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--green);color:#18320d;font-weight:900;font-size:1.25rem;box-shadow:inset 0 -3px 0 rgba(0,0,0,.08)}
.brand strong{display:block;font-size:1rem;letter-spacing:.11em}
.brand small{display:block;margin-top:5px;color:var(--muted);font-size:.6rem;letter-spacing:.11em;text-transform:uppercase}
.main-nav{display:flex;align-items:stretch;gap:4px;height:100%;margin:auto}
.main-nav a{display:flex;align-items:center;position:relative;padding:0 14px;color:#5d6872;font-size:.86rem;font-weight:700}
.main-nav a:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--green);transform:scaleX(0);transition:transform .2s}
.main-nav a:hover,.main-nav a.active{color:var(--ink)}
.main-nav a.active:after{transform:scaleX(1)}
.user-menu{min-width:210px;display:flex;justify-content:flex-end;align-items:center;gap:15px;font-size:.78rem}.user-menu a{color:var(--muted)}
.nav-toggle{display:none;border:0;background:none;font-size:1.4rem}
.page-shell{width:min(1440px,92vw);min-height:calc(100vh - 150px);margin:0 auto;padding:42px 0 80px}
.footer{display:flex;justify-content:space-between;width:min(1440px,92vw);margin:auto;padding:26px 0;border-top:1px solid var(--line);font-size:.72rem;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid transparent;border-radius:11px;background:transparent;font-weight:750;font-size:.84rem;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}
.button:hover{transform:translateY(-1px)}
.button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.button.primary{background:var(--green);color:#17300c;box-shadow:0 9px 24px rgba(132,180,40,.22)}
.button.primary:hover{background:#a9d947}.button.secondary{background:#fff;border-color:var(--line)}.button.secondary:hover{box-shadow:var(--shadow)}
.button.dark{background:var(--navy);color:#fff}.button.success{background:#e5f2c9;color:#3a6300}.button.danger{background:#fff0ef;color:#9b302e;border-color:#f3cecb}.button.wide{width:100%}.button.small{min-height:36px;padding:7px 13px}
.flash{margin:0 0 20px;padding:13px 16px;border-radius:12px;font-size:.88rem;font-weight:650}.flash.success{background:#eaf6d4;color:#3e6200}.flash.error{background:#fff0ef;color:#9b302e}.flash.info{background:#eaf2f7;color:#28536c}
.hero{overflow:hidden;position:relative;min-height:360px;margin-bottom:28px;padding:58px clamp(26px,6vw,84px);border-radius:26px;background:linear-gradient(125deg,#e8f1ef 0%,#f4f7ed 48%,#e9f1d6 100%)}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%}.hero:before{width:330px;height:330px;right:-75px;top:-85px;border:70px solid rgba(155,201,60,.23)}.hero:after{width:180px;height:180px;right:16%;bottom:-115px;background:rgba(32,59,82,.07)}
.hero>div{position:relative;z-index:1;max-width:650px}.hero h1{color:var(--navy)}.hero p:not(.eyebrow){max-width:540px;color:#51636d}
.hero-search{position:absolute;z-index:2;left:clamp(26px,6vw,84px);right:clamp(26px,6vw,84px);bottom:46px;display:flex;align-items:center;min-height:67px;padding:8px 8px 8px 20px;border:1px solid rgba(255,255,255,.7);border-radius:15px;background:#fff;box-shadow:0 18px 44px rgba(46,68,64,.12)}
.hero-search span{font-size:1.7rem;color:#72808a;transform:rotate(-20deg)}.hero-search input{flex:1;min-width:0;padding:10px 14px;border:0;outline:0;font-size:1rem}.hero-search button{align-self:stretch;min-width:100px;border:0;border-radius:10px;background:var(--navy);color:white;font-weight:800;cursor:pointer}
.metric-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:28px 0 50px}
.metric{min-width:0;padding:22px 22px 20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(26,45,53,.035)}
.metric span,.metric small{display:block;color:var(--muted);font-size:.73rem}.metric strong{display:block;margin:9px 0 4px;font-size:2rem;line-height:1;font-weight:780;letter-spacing:-.04em}.metric.featured{border-color:#dceabf;background:#f6faec}.metric.warning strong{color:#b87312}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 20px}.section-heading h2,.section-heading p{margin-bottom:0}.section-heading>a{color:#5e7627;font-size:.8rem;font-weight:750}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:50px}.panel{margin-bottom:28px;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 7px 25px rgba(20,42,50,.035)}
.ranking-list a{display:grid;grid-template-columns:38px 1fr auto 25px;align-items:center;min-height:48px;border-top:1px solid #eef0ed;font-size:.86rem}.ranking-list a:first-of-type{border-top:0}.ranking-list .rank{color:#a2a9aa;font-family:ui-monospace,monospace;font-size:.72rem}.ranking-list .rank-name{font-weight:700}.ranking-list strong{text-align:right}.ranking-list small{padding-left:5px;color:var(--muted)}
.media-strip{display:grid;grid-template-columns:repeat(8,1fr);gap:12px}.media-strip a{min-width:0}.media-strip img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;background:#edf0ed;transition:transform .2s}.media-strip a:hover img{transform:translateY(-3px)}.media-strip span{display:block;overflow:hidden;margin-top:8px;font-size:.73rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.empty{text-align:center;color:var(--muted)}.empty.large{padding:75px 20px;border:1px dashed #d5dad5;border-radius:20px;background:#f9faf8}.empty.compact{width:100%;padding:30px 15px}.empty-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:18px;background:#eaf2df;color:#759e26;font-size:1.7rem}.empty h2,.empty h3{color:var(--ink);margin-bottom:7px}.empty .button{margin-top:12px}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:34px}.page-heading h1{margin-bottom:6px;font-size:clamp(2rem,3vw,3rem)}.page-heading>div>p:last-child{margin:0;color:var(--muted)}
.search-panel{margin-bottom:25px;padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow)}
.main-search{display:flex;align-items:center;gap:10px}.main-search>span{padding-left:7px;font-size:1.6rem;color:#879197}.main-search input{flex:1;min-width:0;border:0;outline:none;font-size:1rem}
.filters{margin-top:14px;border-top:1px solid var(--line)}.filters summary{padding:15px 4px 0;cursor:pointer;font-size:.82rem;font-weight:800}.filters summary span{margin-left:8px;color:var(--muted);font-weight:400}.filter-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:20px}.filter-grid label,.editor-form label,.form-stack label,.member-form label{display:flex;flex-direction:column;gap:6px;color:#49545d;font-size:.74rem;font-weight:750}.filter-grid select,.filter-grid input,.editor-form input,.editor-form select,.editor-form textarea,.form-stack input,.form-stack textarea,.member-form input{width:100%;min-height:42px;padding:9px 11px;border:1px solid #dce0dd;border-radius:9px;background:#fff;outline:none;font-weight:500}.filter-grid select:focus,.filter-grid input:focus,.editor-form input:focus,.editor-form textarea:focus,.form-stack input:focus,.form-stack textarea:focus,.member-form input:focus{border-color:#9fc04b;box-shadow:0 0 0 3px rgba(155,201,60,.12)}.filter-grid select[multiple]{min-height:94px}.filter-grid small{font-weight:400;color:var(--muted)}.filter-actions{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:18px}.filter-actions a{font-size:.75rem;color:var(--muted);text-decoration:underline}
.selection-bar{display:flex;align-items:center;gap:20px;min-height:52px;margin-bottom:14px;padding:8px 14px;border-radius:12px;background:#f0f4ec;font-size:.8rem}.selection-bar label{font-weight:750}.selection-bar span{margin-right:auto;color:var(--muted)}
.media-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.media-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fff;transition:transform .18s,box-shadow .18s}.media-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.media-image{display:block;position:relative;overflow:hidden;aspect-ratio:1/1;background:#eff1ee}.media-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.media-card:hover .media-image img{transform:scale(1.025)}.card-check{position:absolute;z-index:3;top:9px;left:9px;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.92);box-shadow:0 2px 9px rgba(0,0,0,.12)}.card-check input{width:15px;height:15px;accent-color:var(--green-dark)}.status{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:20px;background:#edf0ef;color:#56616a;font-size:.62rem;font-weight:800;letter-spacing:.02em}.media-image .status{position:absolute;right:9px;bottom:9px;box-shadow:0 2px 10px rgba(0,0,0,.1)}.status-completed,.status-approved{background:#e7f3d0;color:#466900}.status-review,.status-failed{background:#fff0d9;color:#9a5c00}.status-processing{background:#e4eff5;color:#315e78}.status-pending{background:#eef0ee;color:#68737a}.media-card-body{padding:13px}.media-card-body h3{overflow:hidden;margin-bottom:5px;font-size:.83rem;text-overflow:ellipsis;white-space:nowrap}.media-card-body p{overflow:hidden;margin-bottom:9px;color:var(--muted);font-size:.69rem;text-overflow:ellipsis;white-space:nowrap}.tag-row{display:flex;flex-wrap:wrap;gap:5px}.tag-row span{padding:3px 7px;border-radius:6px;background:#f1f3ef;color:#64706f;font-size:.61rem}.tag-row.large span{padding:6px 10px;font-size:.72rem}
.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:35px}.pagination a{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:.78rem}.pagination a.active{border-color:var(--navy);background:var(--navy);color:#fff}
.upload-form{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}.upload-form.uploading .dropzone,.upload-form.uploading .file-preview{pointer-events:none;opacity:.58}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:370px;margin:22px;border:2px dashed #ced7c2;border-radius:16px;background:#f8faf5;text-align:center;cursor:pointer;transition:background .2s,border .2s,opacity .2s}.dropzone.dragover{border-color:var(--green-dark);background:#f0f7e4}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.dropzone h2{margin:12px 0 4px}.dropzone p{margin-bottom:10px;color:var(--muted)}.dropzone small{color:#8a9491}.drop-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--green);font-size:1.8rem}.file-preview{display:none;grid-template-columns:repeat(8,1fr);gap:10px;padding:0 22px 22px}.file-preview.active{display:grid}.file-preview figure{min-width:0;margin:0}.file-preview img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px}.file-preview figcaption{overflow:hidden;margin-top:5px;color:var(--muted);font-size:.65rem;text-overflow:ellipsis;white-space:nowrap}.upload-actions{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:20px 24px;border-top:1px solid var(--line)}.upload-actions p{margin:0;font-size:.8rem}.upload-options{display:grid;gap:13px}.analysis-option{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;cursor:pointer}.analysis-option input{width:18px;height:18px;accent-color:var(--green-dark)}.analysis-option>span{display:flex;flex-direction:column}.analysis-option strong{font-size:.78rem}.analysis-option small{color:var(--muted);font-size:.65rem}.recent-upload-panel{margin-bottom:28px;padding:25px;border:1px solid #dce8c5;border-radius:20px;background:#f9fcec;box-shadow:var(--shadow)}.recent-upload-panel .section-heading p:last-child{color:var(--muted);font-size:.75rem}.recent-upload-count{display:grid;place-items:center;min-width:48px;height:34px;padding:0 12px;border-radius:18px;background:#e7f3d0;color:#466900;font-size:.75rem;font-weight:800}.recent-upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.recent-upload-card{display:grid;grid-template-columns:120px 1fr;gap:15px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:transform .18s,box-shadow .18s}.recent-upload-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.recent-upload-card img{width:120px;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#eef0ed}.recent-upload-card h3{overflow:hidden;margin:7px 0 2px;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap}.recent-upload-card p{display:-webkit-box;overflow:hidden;margin:0;color:var(--muted);font-size:.67rem;-webkit-box-orient:vertical;-webkit-line-clamp:2}.recent-upload-card .recent-upload-file{display:block;overflow:hidden;margin-bottom:3px;color:#7d8789;text-overflow:ellipsis;white-space:nowrap}.recent-upload-card small{display:block;margin-top:8px;color:#5e7627;font-size:.65rem;font-weight:750}.notice{margin-top:18px;padding:18px 22px;border-radius:14px;background:#eaf2f5;color:#335665;font-size:.8rem}.notice p{margin:3px 0 0}
.breadcrumb{display:flex;gap:9px;margin-bottom:22px;color:var(--muted);font-size:.74rem}.breadcrumb a{color:#628525}.detail-layout{display:grid;grid-template-columns:minmax(320px,47%) 1fr;gap:48px;align-items:start}.detail-visual{position:sticky;top:102px}.preview-frame{display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:420px;margin-bottom:12px;border:1px solid var(--line);border-radius:20px;background:repeating-conic-gradient(#f0f1ef 0 25%,#f7f8f6 0 50%) 50%/24px 24px}.preview-frame img{max-height:68vh;object-fit:contain}.detail-title h1{margin:13px 0;font-size:clamp(1.8rem,3vw,2.7rem)}.detail-title p{color:#59656e}.status-line{display:flex;gap:7px}.action-row{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.metadata{display:grid;grid-template-columns:1fr 1fr;margin:0 0 32px;border-top:1px solid var(--line)}.metadata>div{padding:13px 0;border-bottom:1px solid var(--line)}.metadata>div:nth-child(odd){padding-right:18px}.metadata dt,.fact-list dt{color:var(--muted);font-size:.68rem}.metadata dd,.fact-list dd{margin:3px 0 0;font-size:.8rem;font-weight:650}.metadata .hash{overflow:hidden;font-family:ui-monospace,monospace;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.analysis-sections>section{padding:22px 0;border-top:1px solid var(--line)}.analysis-sections h2{font-size:1rem}.person-list{display:flex;flex-wrap:wrap;gap:8px}.person-list a{display:flex;flex-direction:column;padding:9px 12px;border-radius:10px;background:#f2f6eb;font-size:.75rem}.person-list span{color:var(--muted);font-size:.64rem}.fact-list{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}.ocr-box{padding:14px;border-radius:10px;background:#f5f6f4;font-family:ui-monospace,monospace;font-size:.76rem}.edit-panel{margin:45px 0;padding:28px;border:1px solid #d9e5c4;border-radius:20px;background:#f8fbf2}.editor-form{display:grid;grid-template-columns:1fr 1fr;gap:17px}.editor-form textarea{resize:vertical}.span-2{grid-column:span 2}.editor-form fieldset{padding:16px;border:1px solid #dce0d9;border-radius:12px}.editor-form legend{padding:0 6px;font-size:.75rem;font-weight:800}.checkbox-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.checkbox-grid label{display:block;padding:8px;border-radius:8px;background:#fff}.form-actions{display:flex;gap:8px}.icon-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:1.2rem;cursor:pointer}.danger-zone{display:flex;align-items:center;justify-content:space-between;margin-top:55px;padding:22px;border:1px solid #f2d6d2;border-radius:16px}.danger-zone strong{color:#8e3430}.danger-zone p{margin:2px 0 0;color:var(--muted);font-size:.74rem}
.character-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.character-card{display:grid;grid-template-columns:130px 1fr;gap:20px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;transition:transform .18s,box-shadow .18s}.character-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.character-avatar,.character-hero-avatar{display:grid;place-items:center;overflow:hidden;aspect-ratio:1;border-radius:16px;background:#edf3e4;color:#6d8b30;font-size:2.5rem;font-weight:800}.character-avatar img,.character-hero-avatar img{width:100%;height:100%;object-fit:cover}.character-card h2{margin:8px 0 0;font-size:1.15rem}.character-card p{overflow:hidden;margin-bottom:14px;color:var(--muted);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.character-counts{display:flex;gap:15px;color:var(--muted);font-size:.68rem}.character-counts strong{color:var(--ink);font-size:.9rem}.dialog{width:min(590px,92vw);padding:0;border:0;border-radius:20px;box-shadow:0 30px 90px rgba(18,33,42,.25)}.dialog::backdrop{background:rgba(20,33,40,.55);backdrop-filter:blur(3px)}.dialog form{padding:27px}.dialog-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:22px}.form-stack{display:grid;gap:14px}.switch{display:flex!important;flex-direction:row!important;align-items:center}.switch input{width:17px!important;min-height:17px!important;accent-color:var(--green-dark)}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.character-hero{display:grid;grid-template-columns:180px 1fr auto;gap:30px;align-items:center;margin-bottom:25px;padding:30px;border-radius:22px;background:linear-gradient(120deg,#eef4e7,#f5f8f4)}.character-hero-avatar{width:180px}.character-hero h1{margin:8px 0 0}.character-hero .aliases{margin-bottom:8px;color:#769129;font-size:.78rem;font-weight:700}.character-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:25px}.character-stat-grid div{padding:20px;border:1px solid var(--line);border-radius:14px;background:#fff}.character-stat-grid span{display:block;color:var(--muted);font-size:.72rem}.character-stat-grid strong{font-size:1.8rem}.reference-panel{transition:border-color .2s,background .2s,box-shadow .2s}.reference-panel.dragover{border-color:var(--green-dark);background:#f9fcec;box-shadow:0 0 0 4px rgba(112,157,33,.14)}.reference-panel.uploading{pointer-events:none;opacity:.72}.reference-drop-target{display:flex;align-items:center;justify-content:center;gap:14px;min-height:210px;margin:4px 0 22px;border:2px dashed #ced7c2;border-radius:16px;background:#f8faf5;text-align:left;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.reference-drop-target:hover,.reference-panel.dragover .reference-drop-target{border-color:var(--green-dark);background:#f0f7e4}.reference-panel.dragover .reference-drop-target{transform:scale(.995)}.reference-drop-target.compact{min-height:96px}.reference-drop-target>span:last-child{display:flex;flex-direction:column}.reference-drop-target strong{font-size:1rem}.reference-drop-target small{color:var(--muted);font-size:.72rem}.reference-drop-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--green);font-size:1.45rem;font-weight:700}.reference-upload-status{min-height:0;margin:-10px 0 18px;text-align:center;color:var(--green-dark);font-size:.75rem;font-weight:700}.reference-upload-status:empty{display:none}.reference-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:12px}.reference-grid figure{min-width:0;margin:0}.reference-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;background:#eef0ed}.reference-grid figcaption{display:flex;align-items:center;justify-content:space-between;margin-top:5px;color:var(--muted);font-size:.62rem}.reference-grid figcaption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reference-grid figcaption button{border:0;background:none;color:var(--red);cursor:pointer}.mini-stats{display:flex;flex-wrap:wrap;gap:8px}.mini-stats>span{display:flex;justify-content:space-between;gap:20px;min-width:140px;padding:10px 12px;border-radius:9px;background:#f4f6f2;font-size:.75rem}.mode-badge{padding:8px 12px;border-radius:8px;background:var(--navy);color:#fff;font:700 .72rem ui-monospace,monospace}.usage-metrics{margin-top:0}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;font-size:.75rem;text-align:left}.table-wrap th{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:.65rem;white-space:nowrap}.table-wrap td{padding:12px;border-bottom:1px solid #eef0ed;vertical-align:top}.table-wrap a{color:#55791d;font-weight:700}.error-cell{max-width:260px;color:var(--red)}.member-layout{display:grid;grid-template-columns:1fr 280px;gap:30px}.member-form{display:grid;gap:12px;padding:18px;border-radius:13px;background:#f5f7f3}.member-form h3{margin-bottom:0}
.login-page{min-height:100vh;background:#edf1ec}.login-wrap{display:grid;grid-template-columns:1.12fr .88fr;min-height:100vh}.login-story{display:flex;flex-direction:column;justify-content:space-between;padding:55px clamp(35px,7vw,110px);background:var(--navy);color:#fff;position:relative;overflow:hidden}.login-story:before{content:"";position:absolute;width:490px;height:490px;right:-200px;top:14%;border:100px solid rgba(155,201,60,.3);border-radius:50%}.login-story:after{content:"";position:absolute;width:180px;height:180px;left:10%;bottom:8%;border-radius:50%;background:rgba(255,255,255,.04)}.login-story>*{position:relative;z-index:1}.brand.light small{color:#c7d1d6}.login-story h1{font-size:clamp(2.8rem,5vw,5.2rem);letter-spacing:-.055em}.login-story>div>p:last-child{max-width:530px;color:#c7d3d7}.login-note{margin:0;color:#9eb0b9;font-size:.72rem}.login-panel{display:flex;align-items:center;justify-content:center;padding:35px;background:#fff}.login-form{display:grid;gap:22px;width:min(390px,100%)}.login-form h2{font-size:2rem;margin-bottom:4px}.login-form label{display:grid;gap:7px;font-size:.76rem;font-weight:750}.login-form input{height:50px;padding:0 14px;border:1px solid #d9ded9;border-radius:11px;outline:none}.login-form input:focus{border-color:#9fc04b;box-shadow:0 0 0 3px rgba(155,201,60,.13)}
.next-action{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:-4px 0 14px;padding:19px 22px;border:1px solid #d8e7bd;border-radius:16px;background:#f7fbed}.next-action span{display:block;color:#719124;font-size:.65rem;font-weight:800;letter-spacing:.1em}.next-action strong{display:block;margin:2px 0;font-size:1rem}.next-action p{margin:0;color:var(--muted);font-size:.74rem}.quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px}.quick-actions a{display:grid;grid-template-columns:38px 1fr;column-gap:10px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:transform .18s,box-shadow .18s}.quick-actions a:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.quick-actions a>span{grid-row:span 2;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#edf4e2;color:#5e8420;font-size:1.15rem;font-weight:800}.quick-actions strong{font-size:.78rem}.quick-actions small{color:var(--muted);font-size:.63rem}
.search-help{display:flex;gap:8px;margin-top:14px;padding:10px 12px;border-radius:9px;background:#f5f8f1;color:var(--muted);font-size:.68rem}.search-help strong{flex:none;color:#54731e}
.upload-selection{display:flex;align-items:center;justify-content:space-between;margin:0 22px 12px;padding:10px 13px;border-radius:10px;background:#f0f5e9;font-size:.74rem}.upload-selection button{border:0;background:none;color:#6a762f;font-size:.7rem;font-weight:750;text-decoration:underline;cursor:pointer}.file-preview figure{position:relative}.file-preview figure>button{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:25px;height:25px;padding:0;border:0;border-radius:50%;background:rgba(23,32,43,.82);color:#fff;font-size:1rem;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.duplicate-upload-panel{margin-bottom:28px;padding:22px;border:1px solid #f0d6a9;border-radius:18px;background:#fff9ed}.duplicate-upload-panel .section-heading{align-items:center}.duplicate-upload-panel .section-heading p:last-child{margin-top:4px;color:#78684f;font-size:.72rem}.duplicate-upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.duplicate-upload-grid a{display:grid;grid-template-columns:72px 1fr;gap:11px;align-items:center;padding:10px;border:1px solid #efe2ca;border-radius:12px;background:#fff}.duplicate-upload-grid img{width:72px;aspect-ratio:1;object-fit:cover;border-radius:9px}.duplicate-upload-grid strong,.duplicate-upload-grid small,.duplicate-upload-grid span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.duplicate-upload-grid strong{font-size:.76rem}.duplicate-upload-grid small{color:var(--muted);font-size:.62rem}.duplicate-upload-grid span{margin-top:5px;color:#6b842e;font-size:.63rem;font-weight:750}
.review-guide{display:flex;gap:12px;align-items:flex-start;margin:-12px 0 24px;padding:14px 16px;border:1px solid #f0d8ae;border-radius:12px;background:#fff8e9}.review-guide>span{display:grid;place-items:center;flex:none;width:27px;height:27px;border-radius:50%;background:#f0a94a;color:#fff;font-weight:900}.review-guide strong{font-size:.78rem}.review-guide p{margin:2px 0 0;color:#76654c;font-size:.68rem}.review-guide.approved{border-color:#d9e8bd;background:#f6faec}.review-guide.approved>span{background:#7ea62c}.review-guide.approved p{color:#5f7046}.inline-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.inline-heading h2{margin:0}.text-button{padding:3px 7px;border:0;background:none;color:#608227;font-size:.68rem;font-weight:800;cursor:pointer;text-decoration:underline}
.field-hint{margin:16px 0 0;padding:10px 12px;border-radius:9px;background:#f3f6f0;color:#63705f;font-size:.68rem}
.cost-note{margin:-32px 0 28px;padding:11px 14px;border-radius:10px;background:#f1f5f6;color:#53666f;font-size:.7rem}.cost-note code,.login-help code{padding:2px 5px;border-radius:5px;background:rgba(32,59,82,.08);font-family:ui-monospace,monospace}.cost-metric strong{color:#507a17}
.login-help{display:grid;gap:2px;padding:12px 14px;border:1px solid #dce9c5;border-radius:10px;background:#f6faed;color:#4d612a;font-size:.72rem}.login-help strong{font-size:.75rem}.login-help small{color:#6a7559}.password-field{display:flex;position:relative}.password-field input{width:100%;padding-right:58px}.password-field button{position:absolute;right:7px;top:7px;bottom:7px;padding:0 9px;border:0;border-radius:7px;background:#eef2eb;color:#56664a;font-size:.68rem;font-weight:750;cursor:pointer}
.api-key-panel{border-color:#dbe8c5;background:linear-gradient(135deg,#fff,#f8fbf2)}.api-key-panel .section-heading{align-items:center}.api-key-panel .section-heading p:last-child{margin:3px 0 0;color:var(--muted);font-size:.74rem}.api-key-status{flex:none;padding:7px 11px;border-radius:20px;background:#e7f3d0;color:#466900;font-size:.68rem;font-weight:800}.api-key-status.missing{background:#fff0d9;color:#9a5c00}.api-key-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:24px}.api-key-form{display:grid;gap:12px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff}.api-key-form label{display:grid;gap:6px;color:#49545d;font-size:.74rem;font-weight:750}.api-key-form input{width:100%;min-height:46px;padding:10px 12px;border:1px solid #dce0dd;border-radius:9px;outline:none;font-family:ui-monospace,monospace}.api-key-form input:focus{border-color:#9fc04b;box-shadow:0 0 0 3px rgba(155,201,60,.12)}.api-key-form p{margin:0;color:var(--muted);font-size:.67rem}.api-key-form .button{justify-self:start}.api-key-guide{padding:18px;border-radius:13px;background:#f0f5e9}.api-key-guide strong{font-size:.82rem}.api-key-guide ul{margin:9px 0 17px;padding-left:20px;color:#56644c;font-size:.7rem}.api-key-guide .button{min-height:38px;font-size:.72rem}
@media(max-width:1180px){.media-grid{grid-template-columns:repeat(4,1fr)}.media-strip{grid-template-columns:repeat(6,1fr)}.metric-grid{grid-template-columns:repeat(3,1fr)}.filter-grid{grid-template-columns:repeat(3,1fr)}.character-grid{grid-template-columns:repeat(2,1fr)}.reference-grid{grid-template-columns:repeat(6,1fr)}.main-nav a{padding:0 9px}.brand,.user-menu{min-width:auto}.user-menu span{display:none}}
@media(max-width:800px){.topbar{height:66px;padding:0 4vw}.brand{margin-right:auto}.nav-toggle{display:block}.main-nav{display:none;position:absolute;top:66px;left:0;right:0;height:auto;padding:10px;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.main-nav.open{display:grid}.main-nav a{padding:12px}.main-nav a:after{display:none}.user-menu{margin-left:6px}.user-menu a{font-size:0}.user-menu a:before{content:"退出";font-size:.7rem}.page-shell{padding-top:26px}.hero{min-height:420px;padding:38px 25px}.hero-search{left:20px;right:20px;bottom:25px}.metric-grid{grid-template-columns:repeat(2,1fr);margin-bottom:35px}.dashboard-grid{grid-template-columns:1fr}.media-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.media-strip a{flex:0 0 135px;scroll-snap-align:start}.media-grid{grid-template-columns:repeat(3,1fr)}.filter-grid{grid-template-columns:repeat(2,1fr)}.detail-layout{grid-template-columns:1fr}.detail-visual{position:static}.preview-frame{min-height:300px}.character-grid{grid-template-columns:1fr}.character-hero{grid-template-columns:120px 1fr}.character-hero-avatar{width:120px}.character-hero>.button{grid-column:span 2}.reference-grid{grid-template-columns:repeat(4,1fr)}.member-layout{grid-template-columns:1fr}.login-wrap{grid-template-columns:1fr}.login-story{display:none}.checkbox-grid{grid-template-columns:repeat(2,1fr)}.file-preview{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){h1{font-size:2.2rem}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .button{width:100%}.hero{min-height:445px}.hero-search{padding-left:12px}.metric-grid{gap:8px}.metric{padding:17px}.metric strong{font-size:1.65rem}.media-grid{grid-template-columns:repeat(2,1fr);gap:9px}.media-card-body{padding:10px}.filter-grid{grid-template-columns:1fr}.main-search .button{min-width:60px;padding:8px}.filters summary span{display:none}.selection-bar{position:sticky;top:72px;z-index:20;flex-wrap:wrap}.selection-bar span{margin-right:0}.upload-actions{align-items:stretch;flex-direction:column}.dropzone{min-height:300px;margin:12px}.detail-layout{gap:25px}.metadata,.fact-list{grid-template-columns:1fr}.editor-form{grid-template-columns:1fr}.span-2{grid-column:span 1}.character-card{grid-template-columns:95px 1fr}.character-hero{grid-template-columns:86px 1fr;padding:20px;gap:16px}.character-hero-avatar{width:86px}.character-stat-grid{gap:7px}.character-stat-grid div{padding:14px}.character-stat-grid strong{font-size:1.4rem}.reference-grid{grid-template-columns:repeat(3,1fr)}.reference-panel{padding:18px}.reference-panel .section-heading{align-items:flex-start;flex-direction:column}.reference-panel .section-heading .reference-add,.reference-panel .section-heading .button{width:100%}.reference-drop-target,.reference-drop-target.compact{min-height:145px;padding:20px;text-align:center;flex-direction:column}.footer{flex-direction:column;gap:5px}.dialog form{padding:20px}.danger-zone{align-items:flex-start;flex-direction:column;gap:15px}}
@media(max-width:1000px){.recent-upload-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.recent-upload-grid{grid-template-columns:1fr}.recent-upload-panel{padding:18px}.recent-upload-card{grid-template-columns:92px 1fr}.recent-upload-card img{width:92px}.analysis-option{align-items:flex-start}.upload-actions .button{width:100%}}
@media(max-width:1000px){.duplicate-upload-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.duplicate-upload-grid{grid-template-columns:1fr}.duplicate-upload-panel{padding:17px}}
@media(max-width:800px){.quick-actions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.api-key-layout{grid-template-columns:1fr}.api-key-panel .section-heading{align-items:flex-start;flex-direction:column}.api-key-status{align-self:flex-start}}
@media(max-width:560px){.next-action{align-items:stretch;flex-direction:column}.next-action .button{width:100%}.quick-actions{grid-template-columns:1fr 1fr}.search-help{align-items:flex-start;flex-direction:column}.upload-selection{margin:0 12px 12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.heading-actions{display:flex;gap:9px}.asset-kind-badge{background:#e8eef4;color:#34556a}.status-drive{background:#e8f1fb;color:#2f6492}.media-source-path{display:block;overflow:hidden;margin:-4px 0 9px;color:#7d898d;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.preview-note{margin:10px 4px 0;color:var(--muted);font-size:.7rem}.metadata .wide{grid-column:1/-1}.character-profile-panel{border-color:#dce8c7;background:linear-gradient(135deg,#fff,#f8fbee)}.character-profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:0}.character-profile-grid>div{padding:13px 16px;border-top:1px solid #e7ecdf}.character-profile-grid>div:nth-child(odd):not(.wide){border-right:1px solid #e7ecdf}.character-profile-grid .wide{grid-column:1/-1}.character-profile-grid dt{color:var(--muted);font-size:.68rem}.character-profile-grid dd{margin:3px 0 0;font-size:.8rem;font-weight:650}.profile-source{margin:15px 0 0;color:var(--muted);font-size:.65rem}.drive-safety{margin-bottom:28px;padding:18px 21px;border:1px solid #d5e7b6;border-radius:14px;background:#f4f9e9}.drive-safety strong{color:#52761b}.drive-safety p{margin:4px 0 0;color:#59694d;font-size:.76rem}.drive-setup ol{padding-left:22px;color:#4f5b62;font-size:.8rem}.drive-setup code,.drive-setup pre{font-family:ui-monospace,monospace}.drive-setup pre{overflow:auto;padding:15px;border-radius:10px;background:#1f2d37;color:#e7f0f4}.drive-folder-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-bottom:24px}.drive-folder-form label{display:grid;gap:6px;color:#49545d;font-size:.74rem;font-weight:750}.drive-folder-form input{min-height:44px;padding:9px 11px;border:1px solid #dce0dd;border-radius:9px}.drive-root-list{display:grid;gap:10px}.drive-root-list article{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px;border:1px solid var(--line);border-radius:13px}.drive-root-list h3{margin:7px 0 1px}.drive-root-list p{margin:0;color:var(--muted);font:400 .64rem ui-monospace,monospace}.drive-root-list small{color:var(--muted);font-size:.67rem}.drive-root-list .drive-error{margin-top:7px;color:var(--red);font-family:inherit}.drive-root-actions{display:flex;align-items:center;gap:9px}.asset-policy-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.asset-policy-grid>div{padding:15px;border-radius:12px;background:#f5f7f3}.asset-policy-grid strong,.asset-policy-grid span{display:block}.asset-policy-grid strong{font-size:.78rem}.asset-policy-grid span{margin-top:4px;color:var(--muted);font-size:.66rem}
.filter-check-group{min-width:0;margin:0;padding:0;border:0}.filter-check-group legend{margin-bottom:6px;color:#49545d;font-size:.74rem;font-weight:750}.filter-check-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:9px;border:1px solid #dce0dd;border-radius:9px;background:#fff}.filter-check-options label{display:flex;align-items:center;flex-direction:row;gap:6px;min-width:0;padding:3px!important;font-size:.68rem!important;cursor:pointer}.filter-check-options input{flex:none;width:15px;height:15px;accent-color:var(--green-dark)}.filter-check-options span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-check-group>small{display:block;margin-top:4px;color:var(--muted);font-size:.62rem}
@media(max-width:800px){.asset-policy-grid{grid-template-columns:repeat(2,1fr)}.drive-root-list article{align-items:flex-start;flex-direction:column}.drive-folder-form{grid-template-columns:1fr}.drive-folder-form .button{width:100%}}
@media(max-width:560px){.heading-actions{width:100%;flex-direction:column}.character-profile-grid{grid-template-columns:1fr}.character-profile-grid .wide{grid-column:1}.character-profile-grid>div:nth-child(odd):not(.wide){border-right:0}.asset-policy-grid{grid-template-columns:1fr}.drive-root-actions{align-items:flex-start;flex-direction:column}}
