:root{--ink: #2a241f;--ink-soft: #4a4038;--muted: #8a7f74;--paper: #f2ebe3;--paper-2: #faf6f0;--paper-3: #ebe3d8;--line: #ddd2c4;--line-strong: #cbbdaa;--accent: #8c3b1e;--accent-hover: #6f2e16;--ok: #4d6b2f;--ok-bg: #e8f0dc;--warn: #a85a12;--warn-bg: #f8ead8;--must: #9b2c2c;--must-bg: #f8e4e4;--side: #2a241f;--side-muted: #a89f95;--side-hover: #3d342c;--shadow: 0 12px 28px rgba(42, 36, 31, .07);--radius: 14px;--font-display: "Noto Serif SC", "Songti SC", "SimSun", serif;--font-body: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;font-family:var(--font-body);color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(ellipse 900px 420px at 8% -8%,rgba(140,59,30,.07),transparent),linear-gradient(180deg,#f6f0e8 0%,var(--paper) 40%,#efe7dc 100%);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.shell{display:grid;grid-template-columns:200px minmax(0,1fr) 320px;grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:100%;overflow:hidden}.shell.ai-off{grid-template-columns:200px minmax(0,1fr)}.shell>.nav,.shell>.main,.shell>.ai{grid-row:1}.site-beian{grid-column:1 / -1;grid-row:2;margin:0;padding:8px 16px 10px;text-align:center;font-size:12px;line-height:1.4;color:var(--muted);background:var(--paper-2);border-top:1px solid var(--line)}.site-beian a{color:var(--muted)}.site-beian a:hover{color:var(--ink-soft);text-decoration:underline}.nav{background:var(--side);color:#f3eee8;padding:28px 14px 12px;display:flex;flex-direction:column;gap:2px;border-right:1px solid #1a1612;height:100%;min-height:0;overflow:hidden}.brand{padding:2px 12px 28px;flex:none}.brand h1{margin:0;font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:.28em;line-height:1.2}.nav-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-foot{flex:none;margin-top:8px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.nav a,.nav button.linkish{display:block;width:100%;text-align:left;background:none;border:0;color:#d7cfc6;padding:10px 12px;border-radius:10px;cursor:pointer;transition:background .15s ease,color .15s ease}.nav a.active,.nav a:hover{background:var(--side-hover);color:#fff}.who{padding:6px 12px 0;font-size:12px;color:var(--side-muted);line-height:1.5}.app-version{margin-top:10px;padding:8px 12px 4px;font-size:11px;letter-spacing:.06em;color:#a89f95b8;line-height:1.4;-webkit-user-select:none;user-select:none}.app-version-sep{margin:0 .35em;opacity:.7}.main{padding:0 32px 56px;min-width:0;min-height:0;overflow-y:auto}.page-body{padding-top:28px}.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-title-actions{gap:10px;align-items:center;flex-wrap:nowrap;justify-content:flex-end}.page-title-actions-col{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:1 1 auto;min-width:0;max-width:none}.filters-disabled{opacity:.45;pointer-events:none}.edit-hint{margin-top:8px;font-size:12px;color:var(--accent);letter-spacing:.04em}.edit-hint-inline{margin-top:0;line-height:1.35;max-width:none;white-space:nowrap;text-align:right;flex:0 0 auto}.slot-order-num{position:absolute;left:12px;top:10px;z-index:3;font-family:var(--font-display);font-size:42px;font-weight:700;line-height:1;color:#2a241fb8;text-shadow:0 1px 0 rgba(255,252,247,.9);pointer-events:none}.slot-tile.edit-mode{cursor:grab;-webkit-user-select:none;user-select:none}.slot-tile.edit-mode.dragging{opacity:.65;cursor:grabbing;outline:2px solid var(--accent);outline-offset:2px}.page-title h2{margin:0;font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:.04em}.page-title p{margin:6px 0 0;color:var(--muted);font-size:13px}.ai{border-left:1px solid var(--line);background:#faf6f0eb;padding:20px 16px;display:flex;flex-direction:column;min-height:0;height:100%;overflow:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ai h3{margin:0 0 8px;font-family:var(--font-display);font-size:16px}.ai .hint{color:var(--muted);font-size:13px;line-height:1.6;flex:1}.ai input{width:100%;border:1px solid var(--line);background:var(--paper-3);color:var(--muted);border-radius:10px;padding:10px 12px}.ai-toggle{position:fixed;right:18px;bottom:46px;z-index:5;border:0;background:var(--ink);color:#fff;border-radius:999px;padding:11px 16px;cursor:pointer;box-shadow:var(--shadow);font-size:13px}.card{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.grid{display:grid;gap:12px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.btn{border:0;background:var(--accent);color:#fff;padding:9px 16px;border-radius:10px;cursor:pointer;transition:background .15s ease,transform .1s ease}.btn:hover{background:var(--accent-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}.btn.ghost:hover{background:var(--paper-3)}.btn.ok{background:var(--ok)}.btn.danger{background:transparent;color:var(--must);border:1px solid #e2b4b4}.btn.danger:hover{background:var(--must-bg)}label.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}input:not([type]),input[type=text],input[type=password],input[type=number],input[type=date],input[type=url],select,textarea{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px;color:var(--ink)}label.field>input,label.field>select,label.field>textarea,.status-edit input:not([type]),.status-edit input[type=text],.status-edit select{width:100%;min-height:40px;box-sizing:border-box}textarea{min-height:92px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(140,59,30,.25);border-color:var(--accent)}.cat-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--line);align-items:center}.cat-tabs .filter-all-sep,.filter-toggles .filter-all-sep{width:1px;align-self:stretch;min-height:28px;margin:0 6px 0 4px;background:var(--line-strong);opacity:.7;flex:0 0 auto}.cat-tab.all-chip:not(.on),.chip.all-chip:not(.on){border-style:dashed;color:var(--muted);background:transparent}.cat-tab{border:1px solid var(--line-strong);background:#ffffffbf;color:var(--ink-soft);border-radius:10px;padding:7px 12px;font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:all .15s ease}.cat-tab.on{background:var(--ink);border-color:var(--ink);color:#fff}.cat-tab:hover:not(.on){background:#fff}.slots-page{margin-top:-28px}.slots-sticky{position:sticky;top:0;z-index:40;margin-left:-32px;margin-right:-32px;padding:28px 32px 12px;margin-bottom:14px;background:#f6f0e8;border-bottom:1px solid var(--line);box-shadow:0 1px #f6f0e8e6}.slots-sticky .slots-page-title{margin-bottom:14px}.slots-page-title{align-items:flex-start}.slots-page-title .page-title-actions{padding-top:2px}.slots-sticky .cat-tabs{margin-bottom:8px;padding-bottom:8px}.slots-sticky .filter-bar{margin-bottom:0;gap:10px 16px}.filter-bar{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.filter-group{display:flex;flex-direction:column;gap:6px;min-width:0}.filter-rooms{flex:1 1 320px;min-width:min(100%,280px)}.filter-status-wrap{display:flex;flex-wrap:wrap;gap:12px 20px;flex:0 1 auto;margin-left:auto;justify-content:flex-end}.filter-status-wrap .filter-group{flex:0 0 auto}.filter-label{font-size:11px;color:var(--muted);letter-spacing:.08em}.filter-toggles{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);background:#ffffffb3;border-radius:999px;padding:6px 12px;font-size:12px;cursor:pointer;color:var(--ink-soft);transition:all .15s ease}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}select.chip{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;padding-right:28px}.chip.toggle{border-style:dashed;background:transparent}.chip.toggle.on{border-style:solid;background:#f7ebe3;color:var(--accent);border-color:var(--accent)}.product-link-wrap{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.product-link-wrap .link-action{min-height:36px;padding:8px 14px;font-size:13px;line-height:1.2;display:inline-flex;align-items:center;justify-content:center}.slot-dims-lwh{display:flex;flex-wrap:wrap;gap:4px 2px;align-items:baseline;font-style:normal;color:var(--ink-soft)}.slot-dims-lwh em{font-style:normal;color:var(--muted);margin-right:4px;font-size:12px}.slot-dims-lwh .dim-x{color:var(--muted);margin:0 6px;font-size:13px}.slot-dims-unit{color:var(--muted);font-size:11px;margin-left:6px}.title-nav{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}.title-row{display:grid;grid-template-columns:48px minmax(200px,360px) 48px;column-gap:22px;align-items:start;justify-content:center;width:max-content;max-width:100%;margin:0 auto}.title-center{min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px}.title-head{display:flex;align-items:flex-end;justify-content:center;gap:10px;width:100%;min-height:42px}.title-name,.title-name-input{margin:0;font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:.04em;line-height:1.2;text-align:center;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-name-input{width:100%;max-width:none;min-width:0;border:1px solid transparent;background:transparent;border-radius:10px;padding:4px 8px}.title-name-input:hover,.title-name-input:focus{border-color:var(--line-strong);background:#fff;white-space:normal}.title-index{flex:0 0 auto;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.06em;color:var(--muted);line-height:1.2;padding-bottom:5px;white-space:nowrap}.title-meta{margin:0;color:var(--ink-soft);font-size:14px;font-weight:500;letter-spacing:.02em;text-align:center;line-height:1.45}.title-arrow{width:48px;height:48px;flex:none;border-radius:50%;border:1px solid var(--line-strong);background:var(--paper-2);color:var(--ink);font-size:28px;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0 0 2px;transition:background .15s ease,opacity .15s ease;margin-top:0}.add-cand-bar{margin-top:16px;margin-bottom:8px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#1c191773;display:grid;place-items:center;padding:24px;animation:fadeIn .15s ease}.modal-card{width:min(560px,100%);max-height:min(90vh,720px);overflow:auto;background:var(--paper-2);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 48px #2a241f2e;padding:18px 20px 20px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-head h3{margin:0;font-family:var(--font-display);font-size:18px}.gallery-filters{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.img-role-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.img-role-item{display:flex;flex-direction:column;gap:4px;align-items:stretch;width:76px;cursor:default}.img-role-item[draggable=true]{cursor:grab}.img-role-item.dragging{opacity:.55;outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}.img-role-item select{font-size:11px;padding:3px 4px;min-height:28px;width:100%}.img-del-btn{border:1px solid var(--line);background:#ffffffb3;color:var(--must);border-radius:6px;padding:2px 0;font-size:11px;cursor:pointer;line-height:1.4}.img-del-btn:hover{background:var(--must-bg)}.img-order-hint{margin:6px 0 0}.tag{display:inline-flex;align-items:center;background:var(--paper-3);color:var(--accent);border-radius:999px;padding:2px 9px;font-size:12px;line-height:1.5}.tag.must{background:var(--must-bg);color:var(--must)}.tag.later{background:var(--paper-3);color:var(--ink-soft)}.tag.locked{background:var(--ok-bg);color:var(--ok)}.tag.warn{background:var(--warn-bg);color:var(--warn)}.login-wrap{min-height:100%;display:grid;grid-template-rows:1fr auto;place-items:center;background:radial-gradient(1000px 480px at 12% -10%,rgba(140,59,30,.12),transparent),linear-gradient(160deg,#ebe2d5,#f6f0e8 45%,#e8dfd2)}.login-wrap .site-beian{width:100%;background:transparent;border-top:0}.login-card{width:min(420px,92vw);grid-row:1;align-self:center;padding:40px 36px 36px;border:1px solid var(--line);background:#faf6f0f2;box-shadow:var(--shadow);border-radius:18px}.login-card h1{margin:0 0 32px;font-family:var(--font-display);font-size:40px;font-weight:700;letter-spacing:.36em;text-indent:.36em;text-align:center}.login-body{display:flex;flex-direction:column;gap:22px}.login-block{display:flex;flex-direction:column;gap:10px}.login-label{margin:0;font-size:13px;font-weight:500;color:var(--muted);letter-spacing:.12em;line-height:1.4}.role-picks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.role-pick{border:1px solid var(--line-strong);background:#fff;border-radius:14px;padding:16px 8px;cursor:pointer;font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:.08em;color:var(--ink);transition:border-color .15s ease,background .15s ease,color .15s ease;display:flex;flex-direction:column;align-items:center;gap:4px}.role-pick.on{border-color:var(--accent);background:#f7ebe3;color:var(--accent)}.role-pick.disabled,.role-pick:disabled{cursor:not-allowed;opacity:.42;background:var(--paper-3);color:var(--muted);border-color:var(--line)}.login-card .login-code{width:100%;min-height:52px;padding:14px 18px;font-size:20px;letter-spacing:.28em;text-align:center;border-radius:14px;border:1px solid var(--line-strong);background:#fff;box-shadow:inset 0 1px 2px #2a241f0a}.login-card .login-code::placeholder{letter-spacing:.06em;font-size:15px;color:var(--muted)}.login-card .login-code:focus{outline:2px solid rgba(140,59,30,.22);border-color:var(--accent)}.login-card .login-enter{width:100%;min-height:48px;margin-top:4px;border-radius:14px;font-size:16px;letter-spacing:.12em}.login-card .err{margin:-6px 0 0}.event{display:flex;gap:12px}.dot{width:10px;height:10px;border-radius:50%;background:#d6d3d1;margin-top:6px;flex:none}.dot.new{background:var(--must)}.photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.photos img,.thumbs img{width:120px;height:90px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.cand{position:relative}.cand.locked{outline:2px solid #7aa34d;outline-offset:1px}.comments{margin-top:18px}.comment{padding:10px 0;border-top:1px solid var(--line);font-size:14px}.err{color:#b91c1c;font-size:13px}.okmsg{color:var(--ok);font-size:13px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}.money{font-variant-numeric:tabular-nums}.meta{color:var(--muted);font-size:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.slot-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.slot-tile{display:flex;flex-direction:column;color:inherit;background:var(--paper-2);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.slot-tile:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 16px 36px #2a241f1a}.slot-cover{position:relative;aspect-ratio:4 / 3;background:linear-gradient(145deg,#e7ddd0,#d8cdc0);overflow:hidden}.slot-cover img{width:100%;height:100%;object-fit:contain;display:block}.slot-cover-empty{width:100%;height:100%;display:grid;place-items:center;color:var(--muted);font-size:13px;letter-spacing:.08em}.slot-cover-duo{display:grid;grid-template-columns:1fr 1fr;height:100%}.slot-cover-duo img{width:100%;height:100%;object-fit:contain}.slot-card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#fffcf7f2;border-bottom:1px solid var(--line);min-height:36px}.slot-badges{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0}.slot-buy{flex:none;border:1px solid var(--line-strong);background:#fff;color:var(--accent);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;letter-spacing:.06em;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.slot-buy:hover{background:var(--paper-3);border-color:var(--accent)}.slot-specs{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink-soft);line-height:1.45}.slot-specs .spec-k{display:inline-block;min-width:2.5em;color:var(--muted);margin-right:6px}.slot-tile.dimmed{opacity:.52;filter:saturate(.75);transform:scale(.94);transform-origin:center top;box-shadow:none}.slot-tile.dimmed:hover{opacity:.78;transform:scale(.96) translateY(-2px)}.slot-gallery.compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.slot-gallery.compact .slot-cover{aspect-ratio:1 / 1}.slot-gallery.compact .slot-body{padding:10px 12px 12px;gap:5px}.slot-gallery.compact .slot-body h3{font-size:15px}.slot-rest{margin-top:22px}.slot-rest-label{font-size:12px;color:var(--muted);letter-spacing:.08em;margin-bottom:10px}.dim-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.slot-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.slot-body h3{margin:0;font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:.02em}.slot-dims{font-size:13px;color:var(--ink-soft);line-height:1.45;min-height:1.45em}.slot-dims.missing{color:var(--warn);font-style:italic}.slot-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:auto;padding-top:4px;border-top:1px dashed var(--line);font-size:12px;color:var(--muted)}.spec-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px 16px;padding:14px 16px;margin-bottom:18px;background:#fffcf7e6;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.spec-bar .spec-item{display:flex;flex-direction:column;gap:4px}.spec-bar .spec-item span{font-size:11px;color:var(--muted);letter-spacing:.04em}.spec-bar .spec-item strong{font-size:14px;font-weight:600;color:var(--ink)}.detail-split{display:grid;grid-template-columns:minmax(280px,.92fr) minmax(320px,1.08fr);gap:22px 28px;align-items:start;margin-bottom:28px}.detail-media{min-width:0;position:sticky;top:8px}.detail-media .gallery-filters{margin-bottom:12px}.detail-media .hero-main-btn{display:block;width:100%;padding:0;border:1px solid var(--line);background:#e8dfd4;cursor:zoom-in;border-radius:14px;overflow:hidden;aspect-ratio:1 / 1}.detail-media .hero-main{width:100%;height:100%;object-fit:contain;display:block;background:#e8dfd4}.detail-media .hero-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.detail-media .hero-thumbs button{border:2px solid transparent;padding:0;border-radius:8px;overflow:hidden;cursor:pointer;background:none}.detail-media .hero-thumbs button.on{border-color:var(--accent)}.detail-media .hero-thumbs img{width:64px;height:52px;object-fit:cover;display:block}.detail-media .hero-hint{margin:8px 0 0}.detail-media .hero-empty{aspect-ratio:1 / 1;display:grid;place-items:center;border:1px dashed var(--line-strong);border-radius:14px;background:#e8dfd473;color:var(--muted);font-size:14px}.detail-attrs{min-width:0;display:flex;flex-direction:column;gap:12px}.detail-attrs .spec-bar{margin-bottom:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px}.detail-link-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0}.detail-link-row strong{flex:0 0 auto}.detail-link-row input{flex:1;min-width:160px}.detail-attrs .status-edit{margin-bottom:0;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-notes{margin:0}.detail-notes h3{margin:0 0 8px;font-family:var(--font-display);font-size:16px}.detail-notes textarea{min-height:88px;width:100%}.detail-cands{margin-bottom:20px}.detail-cands-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.detail-cands-head h3{margin:0;font-family:var(--font-display);font-size:18px}.detail-cand-grid{margin-bottom:0}.gallery-hero{margin-bottom:18px}.gallery-hero .hero-main-btn{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;border-radius:14px;overflow:hidden}.gallery-hero .hero-main{width:100%;max-height:420px;object-fit:contain;background:#e8dfd4;border-radius:14px;border:1px solid var(--line);display:block}.gallery-hero .hero-thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.gallery-hero .hero-thumbs button{border:2px solid transparent;padding:0;border-radius:8px;overflow:hidden;cursor:pointer;background:none}.gallery-hero .hero-thumbs button.on{border-color:var(--accent)}.gallery-hero .hero-thumbs img{width:72px;height:56px;object-fit:cover;display:block}.cand-thumb-btn{border:1px solid var(--line);padding:0;background:#e8dfd4;cursor:zoom-in;border-radius:6px;overflow:hidden;width:64px;height:48px;display:block}.cand-thumb-btn img{width:100%;height:100%;object-fit:cover;display:block}.detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.back-btn{border:1px solid var(--line-strong);background:#ffffffbf;color:var(--ink);border-radius:999px;padding:8px 14px;cursor:pointer;font-size:13px;transition:background .15s ease}.back-btn:hover{background:#fff}.detail-top-actions{margin-left:auto}.detail-title{margin-bottom:18px;justify-content:center}.title-arrow:hover:not(:disabled){background:#fff}.title-arrow:disabled{opacity:.28;cursor:not-allowed}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#1c1917c7;display:grid;place-items:center;padding:24px 72px;cursor:zoom-out;animation:fadeIn .18s ease}.lightbox-img{max-width:min(90vw,1100px);max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 50px #00000059;cursor:zoom-out;background:#1c1917;z-index:1}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:#1c19178c;color:#fff;font-size:34px;line-height:1;cursor:pointer;display:grid;place-items:center;padding-bottom:4px;transition:background .15s ease}.lightbox-nav:hover{background:#1c1917d9}.lightbox-nav.left{left:18px}.lightbox-nav.right{right:18px}.lightbox-count{position:absolute;bottom:22px;left:50%;transform:translate(-50%);color:#ffffffd9;font-size:13px;letter-spacing:.06em;z-index:2}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.status-edit{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:16px}.docs-notes{margin:8px 0 4px;color:var(--ink-soft);white-space:pre-wrap}.docs-file-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.docs-file-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fffcf7b3}.docs-file-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.docs-trash-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--line)}.docs-trash-row:last-child{border-bottom:0}.docs-page .page-title-actions>button.linkish{background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--ink-soft);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:transparent}.docs-page .page-title-actions>button.linkish:hover,.docs-page .page-title-actions>button.linkish.on{color:var(--accent);text-decoration-color:currentColor}.hydro-empty{color:var(--muted)}.hydro-page button.linkish{background:none;border:0;padding:0;margin:0;font:inherit;font-size:13px;color:var(--ink-soft);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:transparent}.hydro-page button.linkish:hover{color:var(--ink);text-decoration-color:currentColor}.hydro-zones{display:flex;flex-direction:column;gap:18px}.hydro-zone{margin:0}.hydro-zone-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}.hydro-zone-title{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:.04em}.hydro-zone-head .linkish.on{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.hydro-manage-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px;padding:10px 12px;border-radius:10px;background:#2a241f0a;border:1px dashed var(--line)}.hydro-zone-body{display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(260px,.95fr);gap:18px 24px;align-items:start}.hydro-imgs{min-width:0;display:flex;flex-direction:column;gap:8px}.hydro-imgs-head,.hydro-notes>.filter-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}.hydro-img-empty{padding:24px 0}.hydro-hero-btn{border:1px solid var(--line);padding:0;background:#1c1917;cursor:zoom-in;border-radius:10px;overflow:hidden;width:100%;display:block}.hydro-hero{width:100%;max-height:min(52vh,420px);object-fit:contain;display:block;background:#1c1917}.hydro-thumb-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.hydro-thumb-wrap{width:72px;display:flex;flex-direction:column;gap:4px}.hydro-thumb-wrap.on .hydro-thumb-btn{outline:2px solid var(--accent);outline-offset:1px}.hydro-thumb-wrap.dragging{opacity:.55}.hydro-thumb-wrap[draggable=true]{cursor:grab}.hydro-thumb-btn{border:1px solid var(--line);padding:0;background:#e8dfd4;cursor:pointer;border-radius:8px;overflow:hidden;width:72px;height:56px;display:block}.hydro-thumb-btn img{width:100%;height:100%;object-fit:cover;display:block}.hydro-thumb-tools{display:flex;flex-wrap:wrap;gap:2px;justify-content:center}.btn.mini{padding:2px 8px;font-size:12px;min-width:0;line-height:1.3}.hydro-notes{min-width:0;display:flex;flex-direction:column;gap:8px}.hydro-note-list{display:flex;flex-direction:column;gap:10px;max-height:480px;overflow-y:auto;padding-right:4px}.hydro-bubble{border:1px solid var(--line);background:#fffcf7f2;border-radius:14px 14px 14px 4px;padding:10px 12px;box-shadow:0 4px 12px #2a241f0a}.hydro-bubble.red{border-color:#9b2c2c59;background:#fff8f7}.hydro-bubble-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;align-items:start}.hydro-bubble-body{white-space:pre-wrap;line-height:1.55;font-size:15px;color:var(--ink);text-align:left;min-width:0}.hydro-bubble-body.as-btn{display:block;width:100%;border:0;background:transparent;padding:0;cursor:text;font:inherit;font-size:15px;font-weight:500}.hydro-bubble-body.as-btn:disabled{cursor:default}.hydro-bubble.red .hydro-bubble-body{color:var(--must);font-weight:600}.hydro-bubble-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:4.5em;flex:none;text-align:right;line-height:1.35}.hydro-bubble-who,.hydro-bubble-when{font-size:11px;color:var(--ink-soft);opacity:.85;max-width:7.5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hydro-bubble-ops{display:inline-flex;gap:8px;margin-top:2px}.hydro-bubble-ops .linkish,.hydro-note-more .linkish{font-size:12px}.hydro-bubble-foot .linkish.muted,.hydro-bubble-ops .linkish.muted{opacity:.55}.hydro-bubble-foot .linkish.danger,.hydro-note-more .linkish.danger{color:var(--must)}.hydro-note-more{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px;margin-top:2px}.hydro-note-compose{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:4px}.hydro-note-compose textarea{min-height:64px;margin:0}.gallery-empty{color:var(--muted)}.gallery-vis-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft);-webkit-user-select:none;user-select:none}.gallery-albums{display:flex;flex-direction:column;gap:18px}.gallery-album{margin:0}.gallery-album-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.gallery-album-title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0}.gallery-album-title{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:.04em}.gallery-album-actions{gap:6px;flex-wrap:wrap}.gallery-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.gallery-img-empty{padding:8px 0 4px}.gallery-img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.gallery-img-card{position:relative;border:1px solid var(--line);border-radius:10px;background:#fffcf7e6;overflow:hidden;padding-bottom:6px}.gallery-img-card.on{outline:2px solid var(--accent);outline-offset:1px}.gallery-img-check{position:absolute;top:6px;left:6px;z-index:2;background:#fffcf7e6;border-radius:4px;padding:2px 4px;line-height:1}.gallery-img-btn{display:block;width:100%;border:0;padding:0;background:#1c1917;cursor:zoom-in;aspect-ratio:4 / 3;overflow:hidden}.gallery-img-btn img{width:100%;height:100%;object-fit:cover;display:block}.gallery-img-caption{display:flex;flex-direction:column;gap:2px;padding:6px 8px 2px;min-height:2.4em}.gallery-img-name{font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-img-ops{display:flex;gap:8px;align-items:center}.gallery-page button.linkish{background:none;border:0;padding:0;margin:0;font:inherit;font-size:12px;color:var(--ink-soft);cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-decoration-color:transparent}.gallery-page .page-title-actions>button.linkish{font-size:14px;margin-right:4px}.gallery-page .page-title-actions>button.linkish.on{color:var(--accent);text-decoration-color:currentColor}.gallery-page button.linkish:hover:not(:disabled){color:var(--ink);text-decoration-color:currentColor}.gallery-page button.linkish:disabled{opacity:.35;cursor:not-allowed}.gallery-img-name-edit{display:flex;gap:4px;padding:4px 6px;align-items:center}.gallery-img-name-edit input{flex:1;min-width:0;font-size:12px;margin:0;padding:4px 6px}@media(max-width:1100px){.shell,.shell.ai-off{grid-template-columns:180px 1fr}.ai{display:none}.grid-3,.grid-2{grid-template-columns:1fr}.slot-gallery{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.hydro-zone-body{grid-template-columns:1fr}}@media(max-width:960px){.detail-split{grid-template-columns:1fr;gap:16px}.detail-media{position:static}.detail-media .hero-main-btn,.detail-media .hero-empty{max-width:420px;margin-inline:auto}.detail-attrs .spec-bar{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.detail-attrs .status-edit{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
