:root{--ink:#18352f;--muted:#687973;--green:#1a6651;--lime:#d8ed9c;--bg:#f3f5f2;--line:#dce3dc;--white:#fff;--orange:#ad5c28;--radius:14px;font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:9px 14px;background:#fff;color:var(--ink);font-weight:550}button:hover{background:#edf3e9;border-color:#a5b9ac}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#124b3c}.danger{color:#b43838}.quiet{background:transparent;border-color:transparent}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #becbc1;border-radius:7px;background:#fff;color:var(--ink)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--green)}input[type=range]{padding:0}label{display:block;font-size:.875rem;font-weight:600}label input,label textarea,label select{margin-top:5px}small,.muted{color:var(--muted);font-size:.875rem}h1,h2,h3,p{margin:0}h1{font-size:2rem;letter-spacing:-1px;line-height:1.2}h2{font-size:1.3rem;letter-spacing:-.4px}h3{font-size:1.05rem}.brand{font-size:2rem;font-weight:800;letter-spacing:-2px}.brand span{color:#a9d961}.eyebrow{font-size:.75rem;letter-spacing:1.9px;font-weight:700}.shell{min-height:100vh;display:grid;grid-template-columns:225px minmax(0,1fr)}.nav{background:#172e2a;color:#d5e1db;padding:28px 20px;display:flex;flex-direction:column;gap:30px;position:sticky;top:0;height:100vh}.nav .brand{color:#fff;padding:0 12px}.nav small{color:#9cafaa}.nav button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:transparent;color:#ccd9d3;border:0;padding:12px}.nav button.active{background:#30473b;color:#e1f3b8}.nav .nav-bottom{margin-top:auto;border-top:1px solid #3b5149;padding-top:18px}.nav-label{font-size:.7rem;letter-spacing:1.8px;color:#90aaa0;margin:24px 12px 9px}.main{min-width:0}.topbar{height:80px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 38px;font-size:.875rem}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#eaf0e6;color:var(--green);font-weight:700}.content{padding:36px 38px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.heading p{color:var(--muted);margin-top:8px}.welcome{background:#e3edda;border:1px solid #d6e2ca;border-radius:var(--radius);padding:24px 28px;display:flex;gap:20px;align-items:center;margin-bottom:30px}.welcome .stamp{border:1px solid #94aa80;padding:12px;font-size:1.4rem;border-radius:50%;width:56px;height:56px;text-align:center}.welcome p{color:#55664e;margin-top:5px}.section-row{display:flex;justify-content:space-between;align-items:center;margin:24px 0 15px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}.market-card{border:1px solid var(--line);background:white;border-radius:var(--radius);overflow:hidden}.card-map{height:155px;background:#edf0e9;position:relative;overflow:hidden}.card-map img{width:100%;height:100%;object-fit:cover;opacity:.8}.card-map .badge{position:absolute;left:16px;top:16px}.card-body{padding:21px}.card-body h2{margin:8px 0}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:6px;font-size:.75rem;font-weight:650;background:#e9f1e3;color:#355834}.badge.archive{background:#eceeec;color:#68716a}.badge.open{background:#fff0dc;color:#925423}.card-stats{display:flex;gap:22px;margin:20px 0;border-top:1px solid var(--line);padding-top:17px;font-size:.875rem;color:var(--muted)}.card-stats strong{color:var(--ink);margin-right:4px}.card-foot{display:flex;gap:7px}.card-foot .primary{flex:1}.empty{padding:50px 25px;text-align:center;background:#fff;border:1px dashed #bcccbc;border-radius:14px}.empty p{margin:12px 0 22px;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.toolbar select{width:auto;max-width:220px}.tabs{display:flex;border:1px solid var(--line);border-radius:9px;background:white;padding:3px}.tabs button{border:0;background:transparent;padding:7px 15px}.tabs button.active{background:var(--ink);color:#fff}.spacer{flex:1}.metric{font-size:.875rem;color:var(--muted)}.metric strong{color:var(--ink)}.planning{display:grid;grid-template-columns:minmax(0,1fr) 290px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.map-side{min-width:0}.map-tools{padding:12px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.map-tools select{width:auto;max-width:190px;font-size:.875rem;padding:7px}.map-tools button{padding:4px 10px}.map-scroll{height:570px;overflow:auto;position:relative;background:#e5eae2;scroll-behavior:auto}.map-canvas{position:relative;isolation:isolate;background:#edf0e8;min-width:1px}.map-image{width:100%;height:100%;display:block;pointer-events:none}.stand{position:absolute;transform:translate(-50%,-50%) rotate(var(--rotation));background:#99cdb5d9;border:2px solid #2a8060;color:#174c3a;border-radius:3px;padding:0;min-width:0;touch-action:none;z-index:2}.stand.free{background:#fff4d6d9;border-color:#b78637}.stand.furniture{background:#e7a26bbd;border-color:#c26a2f;color:#713718}.stand.round{border-radius:50%}.stand.selected{outline:3px solid #092e26;outline-offset:3px}.stand:hover{filter:brightness(.94)}.stand-label{position:absolute;z-index:4;min-width:22px;height:22px;padding:0 4px;line-height:20px;border:1px solid #d6e1d7;border-radius:5px;background:white;box-shadow:0 1px 3px #18352f22;font-size:12px;white-space:nowrap;color:#213d32;cursor:pointer}.leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3;overflow:visible}.legend{display:flex;gap:20px;padding:13px 18px;font-size:.75rem;color:var(--muted)}.dot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;background:#83bea1}.dot.free{background:#eed192}.dot.furniture{background:#c26a2f}.sidebar{border-left:1px solid var(--line);padding:20px;max-height:675px;overflow:auto}.sidebar h3{margin-bottom:14px}.sidebar input{font-size:.875rem}.ex-list{margin:10px 0;display:flex;flex-direction:column;gap:4px}.ex-list .exhibitor{padding:7px 9px;border:1px solid var(--line);border-radius:7px;cursor:grab;background:white;font-size:.8rem}.ex-list .exhibitor small{font-size:.7rem;margin-top:1px}.exhibitor.selected{border-color:var(--green);background:#eef5e8}.exhibitor small{display:block;font-size:.75rem;margin-top:3px}.unassigned-filter{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:.75rem;font-weight:600}.unassigned-filter input{width:16px;height:16px;margin:0}.ex-head{display:flex;justify-content:space-between;gap:5px}.ex-head button{padding:0 4px;font-size:.75rem;border:0}.hint{font-size:.75rem;color:var(--muted);margin-top:10px}.panel{background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:22px;padding:22px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.7px;font-weight:600;background:#f6f8f4}td,th{padding:13px 12px;border-bottom:1px solid var(--line)}td button{font-size:.8rem;padding:5px 8px}.row-actions{white-space:nowrap}.bulkbar{display:flex;gap:10px;margin:15px 0;align-items:center;flex-wrap:wrap}dialog{border:0;border-radius:16px;padding:0;width:min(600px,calc(100vw - 28px));max-height:90vh;color:var(--ink);box-shadow:0 24px 100px #132c3544}dialog::backdrop{background:#142c2b77;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:22px 26px;border-bottom:1px solid var(--line)}.modal-body{padding:24px 26px;display:grid;gap:18px}.modal-body .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.modal-foot{display:flex;justify-content:flex-end;gap:9px;padding:18px 26px;border-top:1px solid var(--line);background:#f6f8f4}.checks{display:flex;gap:12px;flex-wrap:wrap}.checks label{display:flex;align-items:center;gap:7px}.checks input{margin:0}.form-error{color:#af3030;font-size:.875rem}.inline{display:flex;gap:8px;align-items:center}.inline input{flex:1;min-width:0}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 22px;border-radius:9px;z-index:100;display:none;max-width:90vw}.auth{min-height:100vh;display:grid;place-items:center;background:#172e2a}.auth-card{background:#fff;padding:42px;border-radius:20px;max-width:460px;width:calc(100% - 32px)}.auth-card .eyebrow{margin:20px 0 14px;color:var(--green)}.auth-card h1{font-size:1.8rem}.auth-card p{margin:14px 0}.auth-card form{display:grid;gap:16px;margin-top:25px}.auth-card button{width:100%}.loading{padding:50px}.demo-note{background:#d9e9b6;color:#203c26;font-size:.75rem;padding:6px 15px;text-align:center}.archive-section{opacity:.8}.day-title{display:none}@media(min-width:1450px){.map-scroll{height:650px}.sidebar{max-height:760px}.content{max-width:1700px;margin:auto}}@media(max-width:1050px){.shell{grid-template-columns:180px minmax(0,1fr)}.nav{padding:22px 12px}.content{padding:25px}.topbar{padding:0 25px}.planning{grid-template-columns:minmax(0,1fr) 245px}.sidebar{padding:14px}}@media(max-width:760px){.shell{display:block}.nav{height:auto;position:relative;padding:12px 16px;display:flex;gap:10px;flex-direction:row;align-items:center;flex-wrap:wrap}.nav .brand{font-size:1.6rem;padding:0}.nav nav{display:flex;flex:1}.nav button{padding:8px;font-size:.8rem}.nav-label,.nav-bottom{display:none}.topbar{height:55px;padding:0 18px}.content{padding:22px 16px}.heading{align-items:flex-start;flex-wrap:wrap}h1{font-size:1.7rem}.planning{display:block}.sidebar{border-left:0;border-top:1px solid var(--line);max-height:360px}.map-scroll{height:430px}.welcome{padding:18px}.welcome .stamp{display:none}.toolbar{gap:7px}.modal-body .two{grid-template-columns:1fr}}@media print{.nav,.topbar,.toolbar,.sidebar,.map-tools,.modal-foot,button,.bulkbar,.demo-note{display:none!important}.shell,.planning{display:block}.content{padding:0}.map-scroll{height:auto;overflow:visible}.map-canvas{max-width:100%;height:auto!important;aspect-ratio:var(--ratio)}.day-title{display:block}body{background:#fff}.panel{break-inside:avoid}input[type=checkbox]{display:none}}

/* The map is a viewport-sized workspace; navigation opens on demand. */
@media screen {
  #app.map-workspace {height:100dvh;min-height:540px;display:flex;flex-direction:column;}
  .map-workspace > .demo-note {flex:none;}
  .shell.map-mode {display:block;flex:1;min-height:0;}
  .map-mode > .nav {display:none;}
  .map-mode.nav-expanded > .nav {display:flex;position:fixed;top:0;bottom:0;left:0;width:225px;height:100dvh;z-index:40;box-shadow:8px 0 32px #172e2a33;}
  .map-mode.nav-expanded .main {margin-left:225px;}
  .map-mode .main {height:100%;min-height:0;display:flex;flex-direction:column;}
  .map-mode .topbar {height:50px;flex:none;padding:0 16px;gap:12px;}
  .map-mode .topbar > span {flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .map-mode .nav-toggle {flex:none;min-width:40px;padding:6px 10px;font-size:20px;}
  .map-mode .content {width:100%;max-width:none;margin:0;padding:14px 16px 12px;flex:1;min-height:0;display:flex;flex-direction:column;}
  .map-mode .heading {flex:none;margin-bottom:12px;gap:12px;}
  .map-mode .heading h1 {font-size:1.5rem;}
  .map-mode .heading p {margin-top:4px;font-size:.875rem;}
  .map-mode .heading .quiet {margin-bottom:5px!important;font-size:.875rem;}
  .map-mode .toolbar {flex:none;margin-bottom:12px;}
  .map-mode .planning {flex:1;min-height:0;grid-template-columns:minmax(0,1fr) 260px;}
  .map-mode .map-side {display:flex;flex-direction:column;min-height:0;}
  .map-mode .map-tools,.map-mode .legend {flex:none;}
  .map-mode .map-scroll {height:auto;min-height:0;flex:1;}
  .map-mode .sidebar {min-height:0;max-height:none;overflow:auto;}
  .map-mode .legend {padding:9px 16px;}
}
@media screen and (max-width:760px) {
  #app.map-workspace {min-height:740px;}
  .map-mode .content {padding:10px 8px 8px;}
  .map-mode .topbar {padding:0 8px;}
  .map-mode .heading {margin-bottom:8px;}
  .map-mode .planning {display:flex;flex-direction:column;}
  .map-mode .map-side {flex:1;min-height:220px;}
  .map-mode .sidebar {flex:0 0 180px;padding:12px;}
  .map-mode.nav-expanded > .nav {flex-direction:column;align-items:stretch;padding:22px 12px;gap:24px;}
  .map-mode.nav-expanded .nav nav {display:block;flex:none;}
  .map-mode.nav-expanded .nav-label,.map-mode.nav-expanded .nav-bottom {display:block;}
  .map-mode.nav-expanded .main {margin-left:0;}
  .map-mode.nav-expanded .nav-toggle {position:fixed;left:230px;top:6px;z-index:41;background:white;border:1px solid var(--line);}
}

/* The protocol can be collapsed to give the map more room. */
.planning.protocol-hidden{grid-template-columns:minmax(0,1fr) 290px}
@media(max-width:1050px){.planning.protocol-hidden,.planning-mode .planning.protocol-hidden{grid-template-columns:minmax(0,1fr) 245px}}
@media(max-width:760px){.planning.protocol-hidden,.planning-mode .planning.protocol-hidden{display:flex;flex-direction:column}}

/* Compact list view and export controls */
.list-view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid var(--line)}
.list-view-toolbar h2{font-size:1.15rem}
.list-view-toolbar small{display:block;margin-top:2px}
.planning-mode .content > .panel{margin-bottom:10px;padding:12px 14px}
.planning-mode .content > .panel h2{font-size:1rem}
.planning-mode .content > .panel .bulkbar{gap:6px;margin:8px 0}
.planning-mode .content > .panel .bulkbar button{padding:5px 8px;font-size:.78rem}
.planning-mode .content > .panel table{font-size:.78rem}
.planning-mode .content > .panel td,.planning-mode .content > .panel th{padding:6px 8px}
.planning-mode .content > .panel th{font-size:.65rem}
.planning-mode .content > .panel td button{padding:3px 6px;font-size:.72rem}
.replacement-actions{display:grid;gap:8px;margin-top:16px}
.replacement-actions button{text-align:left;width:100%}
.replacement-actions small{display:block;margin-top:2px}
@media(max-width:760px){.list-view-toolbar{align-items:flex-start;flex-wrap:wrap}.list-view-toolbar button{margin-left:auto}.planning-mode .content > .panel{padding:10px}.planning-mode .content > .panel table{min-width:660px}}

/* rö:plan editorial theme — inspired by quiet archival interfaces */
:root{
  --ink:#20201e;
  --muted:#777771;
  --green:#20201e;
  --lime:#d8ee8d;
  --bg:#f5f5f0;
  --line:#d5d5cd;
  --white:#fffef9;
  --orange:#a65d35;
  --radius:2px;
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:15px;
  line-height:1.45;
  color:var(--ink);
  background:var(--bg)
}
body{background:var(--bg)}
button,input,select,textarea{border-radius:2px}
button{padding:8px 12px;border-color:var(--line);background:var(--white);font-weight:500}
button:hover{background:var(--lime);border-color:var(--ink)}
.primary{background:var(--ink);border-color:var(--ink);color:var(--white)}
.primary:hover{background:var(--lime);border-color:var(--ink);color:var(--ink)}
input,select,textarea{border-color:var(--line);background:var(--white);color:var(--ink)}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
h1,h2,h3{font-weight:500;letter-spacing:-.04em}
h1{font-size:2.1rem;letter-spacing:-.07em}
h2{font-size:1.25rem}
.brand{font-size:1.9rem;font-weight:500;letter-spacing:-.09em}
.brand span{color:var(--ink);background:var(--lime);padding:0 .06em}
.eyebrow,.nav-label{font-size:.68rem;letter-spacing:.14em;font-weight:600}
.shell{grid-template-columns:215px minmax(0,1fr)}
.nav{background:var(--white);color:var(--ink);border-right:1px solid var(--line);padding:25px 16px;gap:30px}
.nav .brand{color:var(--ink);padding:0 10px}
.nav small{color:var(--muted)}
.nav button{color:var(--ink);border:0;padding:9px 10px;font-weight:400}
.nav button.active{background:var(--lime);color:var(--ink)}
.nav-label{color:var(--muted);margin:22px 10px 7px}
.nav .nav-bottom{border-top-color:var(--line)}
.topbar{height:62px;background:var(--white);border-bottom-color:var(--line);padding:0 30px;font-size:.82rem}
.avatar{border-radius:2px;background:var(--lime);color:var(--ink);font-weight:500}
.content{padding:38px 30px}
.heading{margin-bottom:30px}
.heading p{color:var(--muted)}
.welcome{background:var(--lime);border:1px solid var(--ink);border-radius:2px;padding:22px 24px;margin-bottom:32px}
.welcome .stamp{border-color:var(--ink);border-radius:50%;font-size:1.15rem}
.welcome p{color:var(--ink)}
.section-row{border-bottom:1px solid var(--line);padding-bottom:10px;margin:28px 0 16px}
.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.market-card{border:1px solid var(--ink);border-radius:2px;background:var(--white)}
.card-map{height:145px;background:#e9e9e2;border-bottom:1px solid var(--ink)}
.card-map img{opacity:.72;filter:grayscale(1)}
.card-map .badge{left:12px;top:12px}
.card-body{padding:18px}
.card-body h2{margin:7px 0}
.badge{border-radius:2px;background:var(--lime);color:var(--ink);font-weight:500}
.badge.archive{background:#e9e9e2;color:var(--muted)}
.badge.open{background:#f1d6bd;color:var(--ink)}
.card-stats{border-top-color:var(--line);margin:18px 0;padding-top:14px}
.card-foot .primary{flex:none}
.panel,.planning{border-radius:2px;background:var(--white);border-color:var(--ink)}
.panel{padding:20px}
.planning{overflow:hidden}
.map-tools{border-bottom-color:var(--line);padding:10px 14px}
.map-scroll{background:#e8e8e1}
.map-canvas{background:#edede7}
.sidebar,.protocol{background:var(--white)}
.sidebar{border-left-color:var(--line);padding:18px}
.protocol{border-right-color:var(--line)}
.ex-list .exhibitor{border-color:var(--line);border-radius:2px;background:var(--white)}
#furniture-list .furniture-item{border:1px solid var(--line);border-radius:2px;background:var(--white)}
#furniture-list .furniture-item:hover{border-color:var(--ink);background:var(--lime)}
.exhibitor.selected{border-color:var(--ink);background:var(--lime)}
.tabs{border-radius:2px;border-color:var(--line);background:var(--bg)}
.tabs button{border-radius:0}
.tabs button.active{background:var(--ink);color:var(--white)}
.empty{border-radius:2px;background:var(--white);border-color:var(--ink)}
dialog{border-radius:2px;background:var(--white)}
.modal-head,.modal-foot{border-color:var(--line)}
.modal-foot{background:var(--bg)}
.auth{background:var(--lime)}
.auth-card{border:1px solid var(--ink);border-radius:2px;background:var(--white);padding:38px}
.auth-card .eyebrow{color:var(--ink)}
.demo-note{background:var(--ink);color:var(--white)}
@media(max-width:760px){
  .nav{background:var(--white);border-right:0;border-bottom:1px solid var(--line)}
  .topbar{padding:0 16px}
  .content{padding:25px 16px}
  h1{font-size:1.8rem}
}

/* List view must use the complete planning width, including wide tables. */
.planning-mode {grid-template-columns:minmax(0,1fr);}
.planning-mode .main {width:100%;}
.planning-mode .content {width:100%;align-items:stretch;}
.planning-mode .content > .panel {width:100%;max-width:none;min-width:0;align-self:stretch;flex:0 0 auto;}
.planning-mode .content > .panel .table-wrap {width:100%;min-width:0;}
.planning-mode .content > .panel table {min-width:720px;}

/* Mouse panning keeps native touch scrolling and stand dragging intact. */
.map-scroll .map-canvas {cursor:grab;}
.map-scroll.panning,.map-scroll.panning * {cursor:grabbing!important;user-select:none;}
.map-display-tabs{flex:none;}
.map-display-tabs button{white-space:nowrap;}
@media(max-width:900px){.map-display-tabs{order:3;width:100%;}.map-display-tabs button{flex:1;}}

/* Activity and threaded comments sit beside the map. */
.planning{grid-template-columns:285px minmax(0,1fr) 290px}
.planning-mode .planning{grid-template-columns:285px minmax(0,1fr) 290px}
.protocol{border-right:1px solid var(--line);padding:18px 16px;overflow:auto;min-width:0}
.protocol-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.protocol-head h2{font-size:1.1rem}.protocol-head small{display:block;margin-top:3px}
.protocol-list{display:grid;gap:13px}.protocol-entry{display:grid;grid-template-columns:10px 1fr;gap:10px}.protocol-dot{width:8px;height:8px;border-radius:50%;background:var(--green);margin-top:7px;box-shadow:0 0 0 3px #e4efe5}.protocol-entry strong{font-size:.82rem}.protocol-entry p{font-size:.78rem;margin-top:2px}.protocol-entry small{font-size:.7rem}.comment-event .protocol-dot{background:var(--orange);box-shadow:0 0 0 3px #fae9dd}
.comment-link{margin-top:7px;padding:4px 7px;font-size:.7rem;color:var(--green);background:#f3f7f0}.comment-list{display:grid;gap:10px}.comment-card{border:1px solid var(--line);border-radius:9px;padding:10px;background:#f8faf7}.comment-card.urgent{border-color:#e6a06f;background:#fff5eb}.comment-card strong{font-size:.78rem}.comment-card small{display:block;font-size:.7rem}.comment-card p{font-size:.85rem;margin:7px 0;white-space:pre-wrap}.comment-delete{font-size:.72rem;padding:3px 6px}.urgent-check{display:flex;align-items:center;gap:8px}.urgent-check input{width:18px;margin:0}
.protocol-link{width:100%;border:0;border-radius:7px;background:transparent;color:var(--ink);text-align:left;padding:2px 0;font-weight:400}.protocol-link:hover{background:#f0f5ee}.item-detail-meta{font-size:.82rem;color:var(--muted)}
.comments-section{border-top:1px solid var(--line);padding-top:16px;display:grid;gap:10px}.comments-section-head{display:flex;justify-content:space-between;align-items:flex-start}.comments-section-head h3{font-size:1rem}.comments-section-head small{display:block;font-size:.75rem;margin-top:2px}
@media(max-width:1050px){.planning{grid-template-columns:240px minmax(0,1fr) 245px}}
@media(max-width:1050px){.planning-mode .planning{grid-template-columns:240px minmax(0,1fr) 245px}}
@media(max-width:760px){.planning{display:flex;flex-direction:column}.protocol{order:3;border-right:0;border-top:1px solid var(--line);max-height:220px}.map-side{order:1}.sidebar{order:2}}

.sidebar-tabs{margin-bottom:12px}.sidebar-add{width:100%;padding:7px 9px;font-size:.8rem;margin-bottom:8px}.sidebar-tabs button{flex:1;padding:7px 8px;font-size:.875rem}.inventory-heading{margin:20px 0 10px!important;font-size:.875rem}.inventory-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.inventory-actions button{font-size:.75rem;padding:5px 7px}.furniture-item{margin-bottom:4px;padding:7px 9px!important;font-size:.8rem}.furniture-item small{font-size:.7rem;margin-top:1px}.furniture-item .inventory-actions{margin-top:4px}.furniture-item .inventory-actions button{padding:3px 6px}

@media screen {
  .planning-mode > .nav {display:none;}
  .planning-mode .main {height:100%;min-height:0;display:flex;flex-direction:column;}
  .planning-mode .topbar {height:50px;flex:none;padding:0 16px;gap:12px;}
  .planning-mode .topbar > span {flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .planning-mode .content {width:100%;max-width:none;margin:0;padding:14px 16px 12px;flex:1;min-height:0;}  .planning-mode .content > .panel {width:100%;max-width:none;display:block;}\n  .planning-mode .content > .panel .table-wrap {width:100%;}
  .planning-mode .heading {margin-bottom:12px;gap:12px;}
  .planning-mode .heading h1 {font-size:1.5rem;}
  .planning-mode .heading p {margin-top:4px;font-size:.875rem;}
  .planning-actions {gap:8px;flex-wrap:nowrap;}
  .planning-actions .tabs button {padding:7px 10px;}
  .planning-actions select {width:auto;min-width:120px;padding:7px 9px;}
  .planning-mode .legend {align-items:center;flex-wrap:wrap;}
  .planning-mode .legend .metric {margin-right:auto;}
}
@media screen and (max-width:760px) {
  .planning-mode .content {padding:10px 8px 8px;}
  .planning-mode .topbar {padding:0 8px;}
  .planning-mode .heading {align-items:flex-start;margin-bottom:8px;}
  .planning-actions {width:100%;overflow:auto;flex-wrap:wrap;}
  .planning-actions .tabs {flex:none;}
  .planning-actions select {flex:1;min-width:110px;}
}

/* Keep the collapsed protocol layout after the responsive planning rules. */
.planning.protocol-hidden,.planning-mode .planning.protocol-hidden{grid-template-columns:minmax(0,1fr) 290px}
@media(max-width:1050px){.planning.protocol-hidden,.planning-mode .planning.protocol-hidden{grid-template-columns:minmax(0,1fr) 245px}}
@media(max-width:760px){.planning.protocol-hidden,.planning-mode .planning.protocol-hidden{display:flex;flex-direction:column}}
