/* v0.7 uses the physical board surface; no opportunity-card docking area. */
.topbar nav {display:flex;gap:8px;flex-wrap:wrap}.topbar nav button{background:#f5ead2;border:1px solid #cab895;border-radius:5px;padding:7px 10px;color:#405544;display:flex;align-items:center;gap:5px}
.brand{gap:9px;display:flex;align-items:center}.brand small{font-size:12px;opacity:.7}
.calendar-grid{--hour-unit:54px;gap:10px;min-width:900px}.day-lane.current-day .day-heading{outline:3px solid #c49b46;outline-offset:2px;background:#fbe7b1}
.physical-well{padding:3px;overflow:visible}.physical-well .v7-slot{gap:1px;display:flex;flex-direction:column;overflow:hidden;justify-content:flex-start;height:100%;border:0;background:transparent;box-shadow:none}
.v7-slot .tabletop-face{height:calc(var(--hour-unit) * var(--card-hours) - 2px);min-height:0;padding:4px 2px;border-top-width:3px;gap:5px;justify-content:center}
.v7-slot .duration-1{gap:1px;padding:1px}.v7-slot .duration-1 .face-heading{flex-direction:row;gap:3px}.v7-slot .duration-1 .face-symbol svg{width:12px;height:12px}.v7-slot .duration-1 .effect-ribbon{gap:1px}.v7-slot .duration-1 .skill-requirements{display:flex;font-size:8px;gap:2px}.v7-slot .duration-1 .skill-symbol{font-size:8px;padding:0}.v7-slot .duration-1 .skill-symbol svg{width:9px;height:9px}.v7-slot .duration-1 .face-name{font-size:10px}.v7-slot .duration-1 .effect-token{font-size:9px;border:0;padding:0;gap:1px}
.v7-slot .duration-2 .face-heading{flex-direction:row}.v7-slot .duration-2 .face-name{font-size:11px}.v7-slot .duration-2 .special-rules{font-size:8px}.v7-slot .tabletop-face .effect-token svg{width:12px;height:12px}.v7-slot .effect-token{font-size:10px;padding:1px}.v7-slot .effect-ribbon{gap:3px}
.v7-slot .work-content,.v7-slot .night-rest-content,.v7-slot .free-content{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.v7-slot small{font-size:9px;letter-spacing:0;font-weight:400}.v7-slot .night-rest-content{background:linear-gradient(155deg,#46545d,#334247);border:1px solid #7c8f87;border-radius:3px;color:#dedcc9}
.slot-badge{position:absolute;bottom:3px;left:3px;right:3px;background:#f4e9d8eb;border-radius:2px;text-align:center;color:#745a35;font-size:8px;pointer-events:none;padding:2px}.slot-badge.danger{background:#f4d6cdef;color:#8e362a}.past-slot:after{content:'已过';position:absolute;right:5px;top:5px;border-radius:3px;background:#ddd5c6;color:#756d60;padding:2px;font-size:8px;pointer-events:none}.past-slot{filter:saturate(.6)}.blocked-slot{background:repeating-linear-gradient(135deg,#b69a7d22 0 7px,#9f745c33 7px 14px)}
.sanity-track{display:flex;align-items:center;gap:9px;margin:0 0 12px;color:#705d45;font-size:11px;background:#f5ead7eb;padding:8px;border-radius:5px;flex-wrap:wrap}.sanity-track span{display:flex;align-items:center;gap:4px}.sanity-meter{flex:1;min-width:60px;height:9px;background:#b5c09a;border-radius:6px;box-shadow:inset 0 2px 3px #24382230;overflow:hidden}.sanity-meter i{display:block;height:100%;background:#b37858}.sanity-track small{font-size:10px}.effect-token.stress{background:#e8d7c3;color:#865837}
.skill-tray{margin-top:10px}.skill-stack{padding:8px}.skill-stack summary{cursor:pointer}.sidebar p{line-height:1.8;font-size:12px}.sidebar small{line-height:1.7;display:block;font-size:10px;color:#7c786b}.sidebar .primary-button{margin:8px 0}.projected-income{font-size:34px;color:#4e7757}.danger-text{color:#9e4235}.edit-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.edit-row button{font-size:11px}
.hand-grid,.market-grid{display:flex;flex-wrap:wrap;align-items:flex-start;--card-unit:85px;gap:16px}.game-card{width:160px;flex:none}.card-paper>.tabletop-face{flex:1;min-height:0}.card-topline{justify-content:space-between}.card-bottom{gap:3px;display:flex;align-items:center;justify-content:space-between}.card-bottom button{border:1px solid #c6b393;border-radius:3px;padding:3px 5px;font-size:10px;background:#fcf2db;color:#496044;display:flex;align-items:center;gap:2px}.card-bottom button:disabled{opacity:.4;cursor:not-allowed}.card-bottom>span{display:flex;align-items:center;font-size:11px}.card-location{font-size:10px;color:#e6d5b5;display:block;margin-top:3px}.card-selected .card-paper{outline:3px solid #ecc66c;outline-offset:3px}.market-groups{display:flex;flex-direction:column;gap:24px}.market-label{margin-bottom:8px}.market-grid{padding-bottom:4px}.personal-project{margin-top:18px;display:flex;align-items:center;gap:10px;background:#eee5d2;color:#5b6552;padding:10px;border-radius:5px}.personal-project button{border:1px solid #b7a68c;padding:5px;border-radius:4px;background:#faf2df}.hand-hint{line-height:1.7}.hand-grid .game-card[data-hours="1"] .face-heading{flex-direction:row}.game-card[data-hours="1"] .face-heading{gap:3px}.game-card[data-hours="1"] .face-name{font-size:11px}.game-card[data-hours="1"] .effect-ribbon{gap:2px}.game-card[data-hours="1"] .skill-symbol{font-size:8px}.game-card[data-hours="1"] .skill-symbol svg{width:9px;height:9px}
.catalogue-v7{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.catalogue-v7 button{border:1px solid #cbbba0;border-left:5px solid var(--family);border-radius:5px;padding:10px;display:flex;gap:7px;align-items:center;flex-wrap:wrap;background:#fbf2df;color:#425344}.catalogue-v7 span{width:100%;font-size:11px;text-align:left}.summary-player{border-bottom:1px solid #d9ccad;padding:12px 0}.summary-player p{font-size:13px;line-height:1.8}.summary-player+.primary-button{margin-top:20px}.rules-grid p{line-height:1.9}.dialog-panel h2{margin-right:35px}.dialog-panel .card-reference{max-width:360px;margin:18px auto}.dialog-panel .card-reference .tabletop-face{min-height:200px}.quick-actions{position:sticky;top:0;z-index:6}.quick-actions button{padding:7px 10px;border:1px solid #ccb790;border-radius:5px;background:#f7eccf;color:#425642;font-size:12px}.quick-actions button:disabled{opacity:.4}.quick-actions span{font-size:12px}.quick-actions>div{display:flex;gap:6px;flex-wrap:wrap}.selection-notice{top:54px}.page-footer{color:#c6ceb8}
@media(max-width:600px){.topbar{flex-wrap:wrap}.topbar nav{gap:4px}.topbar nav button{font-size:10px}.quick-actions{flex-wrap:wrap;gap:7px}.quick-actions button{font-size:11px}.sanity-track small{display:none}.market-label{flex-wrap:wrap}.game-card{width:145px}.hand-grid,.market-grid{gap:12px}.calendar-grid{--hour-unit:54px}}

.draft-glyph{display:flex;align-items:center;justify-content:center;gap:3px;font-size:10px;color:#805b2c}.v7-slot .draft-glyph{font-size:9px}

/* One fixed 0–10 status bar, matching a physical player-board track. */
.sanity-track { flex-wrap:wrap; }
.sanity-scale { position:relative; display:flex; justify-content:space-between; flex:1; min-width:220px; max-width:420px; padding-top:13px; }
.sanity-scale::before { content:""; position:absolute; top:1px; left:0; right:0; height:8px; border-radius:5px; background:linear-gradient(to right,#b5864c var(--sanity-fill),#d7d1c4 var(--sanity-fill)); box-shadow:inset 0 1px 3px #48382355; }
.sanity-tick { position:relative; font-size:10px; color:#787568; width:16px; text-align:center; }
.sanity-tick.current { color:#264f45; font-weight:800; }
.sanity-tick.current::before { content:""; position:absolute; top:-15px; left:3px; width:10px; height:12px; border-radius:3px; background:#345f52; border:1px solid #f8f4e8; box-shadow:0 1px 2px #29271e66; }

.progress-counters { display:flex; align-items:center; justify-content:center; gap:7px; margin:9px 0; }
.progress-counter { width:15px; height:15px; border-radius:50%; background:#00000010; border:1px solid #75644366; box-shadow:inset 0 1px 3px #33291355; }
.progress-counter.filled { background:#b08b41; border-color:#765b24; box-shadow:inset 0 1px 1px #fff8,0 1px 2px #33291366; }
.progress-counters b { font-size:12px; color:#514832; margin-left:3px; }
.compact-face .progress-counters { gap:4px; margin:5px 0; }
.compact-face .progress-counter { width:10px; height:10px; }
