:root{
  --bg:#eef3f5;--panel:rgba(255,255,255,.84);--panel-soft:rgba(255,255,255,.62);--panel-strong:#fff;
  --ink:#263238;--muted:#728088;--line:rgba(57,77,87,.16);--accent:#4e8da9;--accent-strong:#356d86;
  --danger:#b64a4a;--radius:22px;--shadow:0 22px 70px rgba(43,67,78,.15);--surface-shadow:0 8px 24px rgba(43,67,78,.10);
  --hour:72px;--timeline-left:66px;--room-perspective:1500px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;color:var(--ink);background:var(--bg)}
body{min-height:100vh;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--panel-soft);border-radius:12px;padding:9px 13px;transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease}button:hover{transform:translateY(-1px);background:var(--panel-strong);box-shadow:0 5px 18px rgba(36,59,70,.08)}button:disabled{opacity:.38;cursor:default;transform:none;box-shadow:none}.primary{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,white),var(--accent));color:#fff;border-color:transparent;box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 24%,transparent)}.danger{color:var(--danger);border-color:rgba(182,74,74,.25)}.big{padding:14px 18px;font-weight:800}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel-strong) 88%,transparent);padding:11px 12px;outline:none}input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb,var(--accent) 60%,white);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}textarea{min-height:96px;resize:vertical}label{display:grid;gap:7px;font-size:13px;font-weight:700;color:color-mix(in srgb,var(--ink) 82%,var(--muted))}fieldset{border:1px solid var(--line);border-radius:14px;padding:12px}legend{font-size:13px;font-weight:800;padding:0 5px}
[hidden]{display:none!important}.glass{background:var(--panel);border:1px solid color-mix(in srgb,var(--panel-strong) 74%,var(--line));box-shadow:var(--shadow);backdrop-filter:blur(18px) saturate(1.12);-webkit-backdrop-filter:blur(18px) saturate(1.12)}

/* Room depth: a subtle 3D room surrounds the planner rather than a flat wallpaper. */
.room-scene{position:fixed;inset:0;z-index:-10;overflow:hidden;perspective:var(--room-perspective);background:linear-gradient(180deg,#e8f0f3,#dfe8ec)}
.room-back-wall,.room-side,.room-ceiling,.room-floor,.room-window,.room-glow{position:absolute;pointer-events:none;transform-style:preserve-3d}
.room-back-wall{inset:0;background:linear-gradient(180deg,#f2f6f7 0 64%,#e1eaed 64% 100%)}
.room-side{top:-5%;bottom:17%;width:28%;opacity:.72}.room-side-left{left:-18%;transform:rotateY(64deg);transform-origin:right center;background:linear-gradient(90deg,#cfdce1,#edf4f6)}.room-side-right{right:-18%;transform:rotateY(-64deg);transform-origin:left center;background:linear-gradient(-90deg,#cfdce1,#edf4f6)}
.room-ceiling{left:8%;right:8%;top:-27%;height:40%;transform:rotateX(-71deg);transform-origin:center bottom;background:linear-gradient(180deg,#fff,#e9f0f2);opacity:.75}
.room-floor{left:-7%;right:-7%;bottom:-42%;height:62%;transform:rotateX(67deg);transform-origin:center top;background:repeating-linear-gradient(90deg,rgba(80,104,112,.07) 0 1px,transparent 1px 120px),repeating-linear-gradient(0deg,rgba(80,104,112,.07) 0 1px,transparent 1px 90px),linear-gradient(#dbe5e8,#c9d6da)}
.room-window{right:7%;top:10%;width:25vw;max-width:390px;aspect-ratio:1.35;border:11px solid rgba(255,255,255,.7);box-shadow:0 18px 45px rgba(65,95,108,.18),inset 0 0 0 1px rgba(64,84,94,.13);background:linear-gradient(#bce9ff 0 64%,#a8d8b1 64% 100%);opacity:.52;transform:translateZ(-80px)}.room-window:before,.room-window:after{content:"";position:absolute;background:rgba(255,255,255,.72)}.room-window:before{width:5px;top:0;bottom:0;left:50%}.room-window:after{height:5px;left:0;right:0;top:50%}.room-glow{inset:0;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.85),transparent 28%),radial-gradient(circle at 80% 18%,rgba(154,215,242,.25),transparent 28%)}

.landing{min-height:100vh;display:grid;place-items:center;padding:24px}.landing-room-card{width:min(600px,100%);padding:30px;border-radius:30px;position:relative;transform:perspective(1100px) rotateX(.7deg);transform-origin:center top}.landing-room-card:after{content:"";position:absolute;left:8%;right:8%;height:35px;bottom:-22px;background:rgba(35,69,82,.12);filter:blur(18px);transform:rotateX(70deg);z-index:-1}.brand-lockup{display:flex;align-items:center;gap:15px;margin-bottom:18px}.brand-lockup img{width:76px;height:76px;filter:drop-shadow(0 10px 18px rgba(41,70,82,.18))}.brand-lockup h1{margin:0;font-size:38px;letter-spacing:-.045em}.brand-lockup p{margin:4px 0 0;color:var(--muted);letter-spacing:.08em;font-size:11px;font-weight:800;text-transform:uppercase}.landing-copy{display:grid;gap:4px;margin:0 0 22px;padding:14px 15px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft)}.landing-copy strong{font-size:15px}.landing-copy span{font-size:12px;line-height:1.55;color:var(--muted)}
.stack{display:grid;gap:14px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inline-form{display:flex;gap:8px}.inline-form input{flex:1}.or{display:flex;align-items:center;gap:12px;color:var(--muted);margin:22px 0}.or::before,.or::after{content:"";height:1px;background:var(--line);flex:1}.fine{font-size:11px;color:var(--muted);line-height:1.6;margin:10px 0 0}.notice{padding:11px 13px;border-radius:12px;background:color-mix(in srgb,var(--accent) 10%,var(--panel-strong));font-size:13px;margin-bottom:12px}.notice.warning{background:#fff4d7;color:#77561a}

.trip-shell{min-height:100vh;padding:16px;position:relative}.room-panel{transform:perspective(1800px) rotateX(.25deg);transform-origin:center top}.topbar{max-width:1360px;margin:0 auto 12px;border-radius:22px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:10px;z-index:30}.trip-title-wrap{display:flex;align-items:center;gap:12px;min-width:0}.brand-mini{display:flex;align-items:center;gap:7px;border:0;background:transparent;padding:4px 7px 4px 4px;font-weight:900;letter-spacing:-.02em}.brand-mini img{width:35px;height:35px}.trip-heading{min-width:0;border-left:1px solid var(--line);padding-left:12px}.trip-heading h1{margin:0;font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-heading p{margin:3px 0 0;color:var(--muted);font-size:11px}.top-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.top-actions button{white-space:nowrap}.badge{font-size:10px;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent-strong);border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}
.workspace{max-width:1360px;margin:auto;border-radius:26px;min-height:calc(100vh - 105px);overflow:hidden;position:relative}.workspace:after{content:"";position:absolute;inset:auto 9% -24px 9%;height:34px;background:rgba(31,68,81,.10);filter:blur(20px);transform:perspective(800px) rotateX(70deg);z-index:-1}.main-tabs{display:flex;gap:6px;padding:11px 12px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,transparent);position:sticky;top:76px;z-index:20}.main-tabs button{border-color:transparent;background:transparent;font-weight:800}.main-tabs button.active{background:var(--panel-strong);border-color:var(--line);box-shadow:var(--surface-shadow);color:var(--accent-strong)}.tab-panel{padding:14px}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.toolbar-actions{display:flex;gap:8px}.day-tabs{display:flex;gap:7px;overflow:auto;padding-bottom:2px}.day-tabs button{white-space:nowrap;min-width:75px;font-weight:800}.day-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.day-tabs small{display:block;font-size:9px;opacity:.72;margin-top:2px}.schedule-grid{display:grid;grid-template-columns:minmax(240px,32%) minmax(0,1fr);gap:14px;align-items:start}.subpanel{border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--panel-soft) 76%,transparent);box-shadow:0 10px 30px rgba(38,64,75,.05)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin:0 0 10px}.section-head strong{font-size:14px}.section-head span{font-size:10px;color:var(--muted);margin-left:7px}.drop-hint{opacity:.75}.tasks-zone{padding:12px;min-height:245px;position:sticky;top:132px}.tasks-zone.drag-over{outline:3px solid color-mix(in srgb,var(--accent) 17%,transparent)}.task-list{display:grid;gap:8px;min-height:42px}.task-card{display:flex;align-items:center;gap:8px;padding:10px 11px;border-radius:11px;background:var(--panel-strong);border:1px solid var(--line);box-shadow:0 4px 15px rgba(30,70,70,.05);user-select:none;-webkit-user-select:none;touch-action:none;cursor:grab;font-size:12px}.task-card.dragging{opacity:.35}.task-card .dot{width:8px;height:8px;border-radius:50%;background:var(--task-color,#9cd8d0);box-shadow:0 0 0 3px color-mix(in srgb,var(--task-color,#9cd8d0) 16%,transparent)}.empty{padding:20px;text-align:center;color:var(--muted);font-size:12px;width:100%}
.timeline-wrap{padding:12px;min-width:0}.timeline{position:relative;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--panel-strong) 66%,transparent);overflow:hidden;min-height:600px}.timeline-grid{position:absolute;inset:0}.hour-line,.half-line{position:absolute;left:var(--timeline-left);right:0;border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);pointer-events:none}.half-line{border-top-style:dashed;opacity:.55}.hour-label{position:absolute;left:8px;width:46px;transform:translateY(-8px);font-size:10px;color:var(--muted);text-align:right}.timeline-block{position:absolute;left:var(--timeline-left);right:10px;border-radius:11px;padding:7px 10px;overflow:hidden;border:1px solid rgba(255,255,255,.72);box-shadow:0 6px 16px rgba(34,71,70,.12);user-select:none;-webkit-user-select:none;touch-action:none;cursor:grab;z-index:3;transition:box-shadow .16s ease,transform .16s ease}.timeline-block:hover{transform:translateX(2px);box-shadow:0 9px 24px rgba(34,71,70,.15)}.timeline-block.dragging{opacity:.36}.timeline-block strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-block .time{font-size:9px;opacity:.72;margin-top:2px}.drag-ghost{position:fixed;z-index:9999;pointer-events:none;min-width:170px;max-width:320px;padding:9px 12px;border-radius:12px;background:var(--panel-strong);box-shadow:0 15px 35px rgba(20,65,65,.24);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);font-size:12px;transform:translate(-10px,-10px)}.timeline.drop-target{outline:3px solid color-mix(in srgb,var(--accent) 14%,transparent)}body.dragging-item,body.dragging-item *{user-select:none!important;-webkit-user-select:none!important}

.place-filters{display:flex;gap:6px;flex-wrap:wrap}.place-filters button.active{background:var(--ink);color:#fff}.place-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.place-card{background:color-mix(in srgb,var(--panel-strong) 78%,transparent);border:1px solid var(--line);border-radius:17px;padding:14px;display:grid;gap:10px;box-shadow:var(--surface-shadow)}.place-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.place-card h3{font-size:14px;margin:0}.place-card p{margin:0;font-size:11px;color:var(--muted);line-height:1.5;white-space:pre-wrap}.chip{font-size:9px;border-radius:999px;padding:4px 7px;background:color-mix(in srgb,var(--accent) 10%,var(--panel));color:var(--accent-strong)}.card-actions{display:flex;gap:6px;flex-wrap:wrap}.card-actions button,.card-actions a{font-size:10px;padding:7px 9px;border:1px solid var(--line);background:var(--panel-soft);border-radius:9px;text-decoration:none;color:inherit}
.map-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:12px;min-height:620px}.map-place-list{padding:8px;overflow:auto}.map-place-button{width:100%;text-align:left;margin-bottom:6px;display:grid;gap:2px}.map-place-button small{color:var(--muted)}.map-place-button.active{background:var(--ink);color:#fff}.map-stage{overflow:hidden;min-height:500px;display:grid;place-items:center}.map-stage iframe,.detail-map iframe,.mini-map iframe{border:0;width:100%;height:100%;min-height:420px}.map-fallback{padding:30px;text-align:center;max-width:480px}.map-fallback p{color:var(--muted);line-height:1.6}.map-fallback a{display:inline-block;text-decoration:none;background:var(--accent);color:#fff;border-radius:11px;padding:10px 13px}

.modal{border:0;background:transparent;padding:0;width:min(720px,calc(100vw - 24px));max-height:calc(100vh - 24px)}.modal::backdrop{background:rgba(19,37,38,.42);backdrop-filter:blur(5px)}.modal-card{background:color-mix(in srgb,var(--panel-strong) 94%,transparent);border:1px solid color-mix(in srgb,var(--panel-strong) 80%,var(--line));border-radius:22px;box-shadow:0 30px 100px rgba(22,61,61,.28);display:flex;flex-direction:column;max-height:calc(100vh - 24px);overflow:hidden;backdrop-filter:blur(28px) saturate(1.2)}.modal-card header,.modal-card footer{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex:0 0 auto}.modal-card header{border-bottom:1px solid var(--line)}.modal-card footer{border-top:1px solid var(--line)}.modal-card header h2{margin:0;font-size:18px}.modal-card header p{margin:3px 0 0;font-size:10px;color:var(--muted)}.modal-body{padding:16px;overflow-y:auto;display:grid;gap:13px;min-height:0}.x{border:0;background:transparent;font-size:25px;padding:3px 8px}.small-modal{width:min(620px,calc(100vw - 24px))}.detail-card{min-height:500px}.detail-places{display:grid;gap:9px}.detail-place{border:1px solid var(--line);border-radius:13px;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:8px}.detail-map{height:350px;border-radius:14px;overflow:hidden;background:#eef5f3}.mini-map{height:260px;border-radius:13px;overflow:hidden;background:#eef5f3}.choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:190px;overflow:auto}.choice-list label{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:10px;font-weight:500}.choice-list input{width:auto}.form-message{font-size:11px;color:var(--danger);min-height:16px}.copy-row{display:flex;gap:8px}.copy-row input{font-size:10px}.select-all-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted)}.select-all-row label{display:flex;grid-auto-flow:column;align-items:center;gap:7px}.select-all-row input{width:auto}.import-list{display:grid;gap:7px}.import-row{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:10px}.import-row input{width:auto;margin-top:3px}.import-row strong{font-size:12px}.import-row small{display:block;color:var(--muted);margin-top:3px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:10000;background:#183f41;color:#fff;border-radius:999px;padding:10px 15px;font-size:11px;box-shadow:0 10px 30px rgba(0,0,0,.2)}

.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme-tile{display:grid;grid-template-columns:72px 1fr;grid-template-rows:auto auto;text-align:left;gap:2px 10px;align-items:center;padding:9px}.theme-tile.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.theme-preview{grid-row:1 / span 2;display:block;width:72px;height:52px;border-radius:9px;border:1px solid rgba(0,0,0,.08);overflow:hidden;position:relative}.theme-preview:before,.theme-preview:after{content:"";position:absolute}.theme-tile strong{font-size:12px}.theme-tile small{font-size:9px;color:var(--muted)}.preview-default{background:linear-gradient(#e7eef2 0 60%,#ccd9df 60%)}.preview-default:before{inset:8px 12px;border:1px solid rgba(50,70,80,.25);background:rgba(255,255,255,.72)}.preview-simple{background:radial-gradient(circle at 1px 1px,#bbb 1px,transparent 1.2px) 0 0/9px 9px,#f8f8f3}.preview-simple:before{left:12px;right:12px;top:14px;height:1px;background:#222;box-shadow:0 8px #222,0 16px #222}.preview-glass{background:radial-gradient(circle at 20% 20%,#fff,transparent 25%),linear-gradient(135deg,#f4eaf2,#dce7fa 56%,#ffdbe9)}.preview-glass:before{inset:8px;border:1px solid rgba(255,255,255,.8);border-radius:8px;background:rgba(255,255,255,.34);box-shadow:inset 0 1px #fff}.preview-aero{background:linear-gradient(#aeeeff 0 55%,#72d996 55%)}.preview-aero:before{left:7px;right:7px;bottom:7px;height:14px;border-radius:50%;background:#61bff3;box-shadow:0 -7px 14px rgba(255,255,255,.7)}.preview-wii{background:linear-gradient(#fff,#e8edf0)}.preview-wii:before{left:7px;right:7px;top:9px;height:26px;border:1px solid #aebbc2;border-radius:7px;box-shadow:inset 0 -4px #edf2f4}.preview-wii:after{left:7px;right:7px;bottom:5px;height:3px;background:#68c9df;border-radius:999px}

/* FocusBox theme family, translated to a room rather than only recoloring cards. */
body[data-theme="default"]{--bg:#edf2f4;--panel:rgba(255,255,255,.82);--panel-soft:rgba(255,255,255,.63);--ink:#29353b;--muted:#758188;--line:rgba(59,78,88,.15);--accent:#568fa7;--accent-strong:#356f87}
body[data-theme="default"] .room-back-wall{background:linear-gradient(#eef4f6 0 64%,#dbe5e9 64%)}
body[data-theme="default"] .room-floor{background:repeating-linear-gradient(90deg,rgba(69,88,96,.06) 0 1px,transparent 1px 115px),linear-gradient(#d9e4e7,#c6d5d9)}

body[data-theme="simple"]{--bg:#f8f8f4;--panel:rgba(250,250,247,.96);--panel-soft:rgba(250,250,247,.91);--panel-strong:#fbfbf8;--ink:#20211f;--muted:#70726d;--line:#c8cac4;--accent:#2b2c29;--accent-strong:#171817;--shadow:6px 7px 0 rgba(29,30,28,.06);--surface-shadow:none}
body[data-theme="simple"] .glass{backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:2px}body[data-theme="simple"] button,body[data-theme="simple"] input,body[data-theme="simple"] select,body[data-theme="simple"] textarea,body[data-theme="simple"] .subpanel,body[data-theme="simple"] .place-card{border-radius:2px;box-shadow:none}body[data-theme="simple"] .room-scene{background:#f8f8f4;perspective:1200px}body[data-theme="simple"] .room-back-wall{background:radial-gradient(circle at 1px 1px,rgba(30,31,29,.11) 1px,transparent 1.15px) 0 0/16px 16px,#f8f8f4}body[data-theme="simple"] .room-side{background:linear-gradient(#f4f4ef,#e8e8e2);opacity:.45}body[data-theme="simple"] .room-ceiling{background:#fafaf6;opacity:.4}body[data-theme="simple"] .room-floor{background:repeating-linear-gradient(90deg,rgba(30,31,29,.10) 0 1px,transparent 1px 100px),repeating-linear-gradient(0deg,rgba(30,31,29,.08) 0 1px,transparent 1px 72px),#efefe9}body[data-theme="simple"] .room-window{display:none}body[data-theme="simple"] .room-glow{display:none}body[data-theme="simple"] .timeline-block{border-radius:0;box-shadow:none;background:transparent!important;border:0;border-left:3px solid color-mix(in srgb,var(--block-color,#555) 62%,#222)}body[data-theme="simple"] .task-card{border-radius:1px;background:transparent;border-left:2px solid var(--task-color)}

body[data-theme="glass"]{--bg:#f2eaf1;--panel:linear-gradient(145deg,rgba(255,255,255,.56),rgba(255,229,243,.21));--panel-soft:rgba(255,255,255,.42);--panel-strong:rgba(255,255,255,.72);--ink:#322b33;--muted:#866f7e;--line:rgba(255,255,255,.74);--accent:#b86f9a;--accent-strong:#7e4868;--shadow:0 24px 62px rgba(83,62,88,.15),inset 0 1px 0 rgba(255,255,255,.95);--surface-shadow:0 12px 28px rgba(91,64,89,.09)}
body[data-theme="glass"] .room-scene{background:linear-gradient(145deg,#f9f3f7,#e5ecfa 58%,#f7dce9)}body[data-theme="glass"] .room-back-wall{background:radial-gradient(circle at 12% 15%,rgba(255,255,255,.9),transparent 24%),radial-gradient(circle at 86% 20%,rgba(170,218,255,.38),transparent 29%),radial-gradient(circle at 75% 80%,rgba(255,164,211,.38),transparent 34%),linear-gradient(145deg,#f8f2f5,#e7edf8 55%,#f5dfe9)}body[data-theme="glass"] .room-side-left{background:linear-gradient(90deg,rgba(224,207,232,.62),rgba(255,255,255,.35))}body[data-theme="glass"] .room-side-right{background:linear-gradient(-90deg,rgba(197,216,246,.62),rgba(255,255,255,.35))}body[data-theme="glass"] .room-ceiling{background:linear-gradient(rgba(255,255,255,.9),rgba(220,224,246,.55))}body[data-theme="glass"] .room-floor{background:repeating-linear-gradient(90deg,rgba(255,255,255,.20) 0 1px,transparent 1px 115px),linear-gradient(rgba(235,217,235,.52),rgba(210,222,241,.76))}body[data-theme="glass"] .room-window{background:linear-gradient(#c8e7ff 0 58%,#edc7dd 58%);border-color:rgba(255,255,255,.55);opacity:.42}body[data-theme="glass"] .glass,body[data-theme="glass"] .subpanel,body[data-theme="glass"] .place-card{backdrop-filter:blur(28px) saturate(1.35);-webkit-backdrop-filter:blur(28px) saturate(1.35);box-shadow:0 18px 48px rgba(90,62,88,.11),inset 0 1px 0 rgba(255,255,255,.95)}

body[data-theme="aero"]{--bg:#245f6e;--panel:linear-gradient(145deg,rgba(250,255,255,.69),rgba(178,237,246,.31));--panel-soft:rgba(236,253,255,.59);--panel-strong:rgba(250,255,255,.87);--ink:#17333d;--muted:#557e88;--line:rgba(255,255,255,.82);--accent:#2aa5bd;--accent-strong:#0b6d82;--shadow:0 22px 56px rgba(4,83,113,.16),inset 0 1px 0 rgba(255,255,255,.96);--surface-shadow:0 10px 24px rgba(5,92,120,.10)}
body[data-theme="aero"] .room-back-wall{background:linear-gradient(180deg,rgba(211,249,255,.08),rgba(33,122,139,.18)),url('assets/frutiger-timer-bg.webp') center/cover no-repeat;filter:blur(5px) saturate(1.07);transform:scale(1.02)}body[data-theme="aero"] .room-side-left{background:linear-gradient(90deg,rgba(61,146,164,.72),rgba(209,249,255,.34))}body[data-theme="aero"] .room-side-right{background:linear-gradient(-90deg,rgba(52,137,158,.72),rgba(209,249,255,.34))}body[data-theme="aero"] .room-ceiling{background:linear-gradient(rgba(239,255,255,.95),rgba(165,229,239,.52));opacity:.68}body[data-theme="aero"] .room-floor{background:repeating-linear-gradient(90deg,rgba(255,255,255,.14) 0 1px,transparent 1px 120px),repeating-linear-gradient(0deg,rgba(255,255,255,.10) 0 1px,transparent 1px 86px),linear-gradient(rgba(93,188,200,.61),rgba(22,104,125,.76));box-shadow:inset 0 25px 65px rgba(255,255,255,.20)}body[data-theme="aero"] .room-window{background:linear-gradient(#bfefff 0 62%,#78d79a 62%);border-color:rgba(255,255,255,.8);opacity:.46}body[data-theme="aero"] .glass,body[data-theme="aero"] .subpanel,body[data-theme="aero"] .place-card{backdrop-filter:blur(22px) saturate(1.24);-webkit-backdrop-filter:blur(22px) saturate(1.24)}

body[data-theme="wii"]{--bg:#edf1f3;--panel:linear-gradient(#fff,#eef1f3);--panel-soft:rgba(255,255,255,.87);--panel-strong:#fff;--ink:#4b5358;--muted:#7f8d94;--line:#c9ced1;--accent:#61bfd6;--accent-strong:#397e91;--shadow:0 14px 38px rgba(55,72,84,.14),inset 0 1px 0 #fff;--surface-shadow:0 5px 12px rgba(55,72,84,.08)}
body[data-theme="wii"] .room-scene{background:linear-gradient(#f8fafb,#e8edef)}body[data-theme="wii"] .room-back-wall{background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(96,118,129,.025) 3px 4px),linear-gradient(#fff,#e9eef0)}body[data-theme="wii"] .room-side{background:linear-gradient(#f7f9fa,#dce4e8);opacity:.75}body[data-theme="wii"] .room-ceiling{background:#fff}body[data-theme="wii"] .room-floor{background:repeating-linear-gradient(90deg,rgba(87,108,118,.07) 0 1px,transparent 1px 125px),linear-gradient(#eef2f4,#d8e1e5)}body[data-theme="wii"] .room-window{background:linear-gradient(#d8f4ff 0 70%,#aee2f0 70%);border:10px solid #fff;box-shadow:0 0 0 1px #c4cdd1,0 15px 36px rgba(55,72,84,.12)}body[data-theme="wii"] .glass,body[data-theme="wii"] .subpanel,body[data-theme="wii"] .place-card{backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:17px}body[data-theme="wii"] .main-tabs{border-bottom:2px solid #64cbe4}body[data-theme="wii"] button{background:linear-gradient(#fff,#edf0f2);box-shadow:inset 0 1px 0 #fff}body[data-theme="wii"] .primary,body[data-theme="wii"] .day-tabs button.active,body[data-theme="wii"] .map-place-button.active,body[data-theme="wii"] .place-filters button.active{background:linear-gradient(#83d9ea,#54b8d0);color:#fff;border-color:#4da9bd}

@media(max-width:980px){.schedule-grid{grid-template-columns:1fr}.tasks-zone{position:static;min-height:0}.task-list{display:flex;flex-wrap:wrap}.task-card{max-width:100%}.room-window{width:36vw;right:2%;opacity:.3}}
@media(max-width:760px){
  :root{--hour:64px;--timeline-left:52px}.trip-shell{padding:7px}.topbar{top:5px;border-radius:17px;padding:7px}.brand-mini span{display:none}.brand-mini img{width:31px;height:31px}.trip-heading{padding-left:8px}.trip-heading h1{font-size:15px}.trip-heading p{font-size:9px}.top-actions button{padding:7px 8px;font-size:10px}.top-actions button span{display:none}.top-actions .badge{display:none}.workspace{border-radius:19px;min-height:calc(100vh - 78px)}.main-tabs{top:62px;padding:7px}.main-tabs button{flex:1;padding:8px 4px;font-size:11px}.tab-panel{padding:9px}.panel-toolbar{align-items:flex-start;flex-direction:column}.panel-toolbar>.primary{align-self:stretch}.day-tabs{width:100%}.two-col{grid-template-columns:1fr}.timeline-block{right:7px}.map-layout{grid-template-columns:1fr;min-height:0}.map-place-list{display:flex;overflow-x:auto}.map-place-button{min-width:190px;margin:0 6px 0 0}.map-stage{min-height:430px}.choice-list{grid-template-columns:1fr}.modal{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.modal-card{max-height:calc(100dvh - 12px)}.toolbar-actions{width:100%}.toolbar-actions button{flex:1}.drop-hint{display:none}.landing{padding:12px}.landing-room-card{padding:21px}.brand-lockup h1{font-size:31px}.brand-lockup img{width:63px;height:63px}.theme-grid{grid-template-columns:1fr}.room-side{display:none}.room-ceiling{opacity:.25}.room-floor{bottom:-34%;height:50%}.room-window{width:54vw;right:-9%;top:8%;opacity:.2}
}

/* --------------------------------------------------------------------------
   v3 - FocusBox parity pass
   Timebox surfaces and blocks intentionally mirror FocusBox v35 theme rules.
   -------------------------------------------------------------------------- */
:root{
  --line-strong:#d2dde6;--accent-soft:#eaf6fd;--accent-deep:#4b8fbd;--accent-border:#a8d5ef;
  --accent-wash:#f0f9fe;--button-bg:#fff;--button-hover:#f8fbfd;--on-accent:#173a50;
}
body[data-theme="default"]{
  --bg:#f6f9fc;--panel:#fff;--panel-soft:#f8fbfd;--panel-strong:#fff;--ink:#203040;--muted:#83909c;
  --line:#e3eaf0;--line-strong:#d2dde6;--accent:#91ccef;--accent-soft:#eaf6fd;--accent-deep:#4b8fbd;
  --accent-border:#a8d5ef;--accent-wash:#f0f9fe;--button-bg:#fff;--button-hover:#f8fbfd;--on-accent:#173a50;
  --surface-shadow:0 1px 2px rgba(33,65,87,.035);
}
body[data-theme="default"] .room-back-wall{background:linear-gradient(#f6f9fc 0 64%,#eaf1f6 64%)}
body[data-theme="default"] .room-floor{background:repeating-linear-gradient(90deg,rgba(70,98,118,.055) 0 1px,transparent 1px 115px),linear-gradient(#edf4f8,#d9e5ec)}
body[data-theme="default"] .glass,body[data-theme="default"] .subpanel{background:rgba(255,255,255,.95);border-color:var(--line);box-shadow:0 8px 26px rgba(33,65,87,.06)}
body[data-theme="default"] button{background:var(--button-bg);border-color:var(--line);box-shadow:none}
body[data-theme="default"] button:hover{background:var(--button-hover);border-color:#c9d7e0}
body[data-theme="default"] .primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}

/* Shared FocusBox timebox geometry */
.timeline-wrap{overflow:hidden}
.timeline{border-radius:12px;background:var(--panel);border:1px solid var(--line);box-shadow:none}
.timeline-grid{pointer-events:none}
.hour-line,.half-line{left:var(--timeline-left);border-top:1px solid #ededeb}
.hour-line{border-top-color:#dedfdb}
.half-line{border-top-style:solid;opacity:1}
.hour-label{left:0;width:calc(var(--timeline-left) - 8px);padding-right:7px;color:#8d9197;text-align:right;font-size:10px;transform:translateY(5px);z-index:1}
.timeline-block.block{left:calc(var(--timeline-left) + 8px);right:8px;padding:6px 8px 10px;border-left:4px solid var(--block-color,var(--accent));border-radius:7px;background:color-mix(in srgb,var(--block-color,var(--accent)) 17%,var(--panel))!important;box-shadow:0 2px 6px rgba(0,0,0,.06);overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,filter .16s ease}
.timeline-block.block .block-title{font-weight:700;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:46px;line-height:1.25}
.timeline-block.block .block-time{font-size:9px;color:var(--accent-deep);margin-top:2px;display:inline-flex;align-items:center;min-height:16px}
.block-actions{position:absolute;right:4px;top:4px;display:flex;gap:2px;opacity:0;transition:opacity .14s ease;z-index:6}
.block:hover .block-actions{opacity:1}
.block-actions button{width:19px;height:19px;border:0;border-radius:5px;background:rgba(255,255,255,.8);font-size:10px;padding:0;display:grid;place-items:center;line-height:1;box-shadow:none;transform:none}
.resize-handle{position:absolute;left:7px;right:7px;bottom:1px;height:9px;cursor:ns-resize;touch-action:none;z-index:7}
.resize-handle:after{content:"";position:absolute;left:50%;bottom:2px;width:28px;height:3px;border-radius:999px;background:color-mix(in srgb,var(--block-color,var(--accent)) 58%,transparent);transform:translateX(-50%)}
.block.selected{outline:none!important;outline-offset:0!important;z-index:10}
.timeline-block:focus,.task-card:focus{outline:none!important}
.timeline-block.block.selected{transform:translateY(-1px);box-shadow:0 9px 24px rgba(34,71,70,.15)}
.block.drag-active{cursor:grabbing;z-index:12;opacity:.94}
.simple-start,.simple-duration-line,.simple-duration{display:none}
.timeline-empty{position:absolute;top:30px;left:calc(var(--timeline-left) + 8px);right:10px}

.task-card.card{position:relative;background:var(--button-bg);border:1px solid var(--line);border-left:3px solid var(--task-color,var(--line));border-radius:10px;padding:8px;min-height:42px;display:block}
.task-card .dot{display:none}
.task-compact-row{display:flex;align-items:center;gap:8px;min-width:0}
.task-compact-main{display:flex;align-items:center;gap:7px;min-width:0;flex:1}
.task-compact-main:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--task-color);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);flex:0 0 auto}
.card-title{font-size:13px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-actions{display:flex;gap:5px;margin-top:8px;opacity:0;transition:.15s}
.task-card:hover .card-actions{opacity:1}
.mini{height:25px;border:1px solid var(--line);background:var(--button-bg);border-radius:7px;padding:0 7px;font-size:10px;box-shadow:none}
.task-to-timebox{width:27px;height:27px;border:1px solid var(--line);background:var(--button-bg);border-radius:7px;padding:0;display:grid;place-items:center;font-size:14px;color:var(--accent-deep);flex:0 0 auto;box-shadow:none}
.task-to-timebox:hover{border-color:var(--accent-border);background:var(--accent-soft)}

/* FocusBox Simple */
body[data-theme="simple"]{
  --bg:#f2f2ef;--panel:#fbfbf8;--panel-soft:#f7f7f3;--panel-strong:#fbfbf8;--ink:#171817;--muted:#747672;
  --line:#d9d9d3;--line-strong:#b9bab4;--accent:#2b2c2b;--accent-soft:#eeeeea;--accent-deep:#171817;
  --accent-border:#8c8e88;--accent-wash:#f1f1ed;--button-bg:#fbfbf8;--button-hover:#f0f0ec;--on-accent:#fff;
  --surface-shadow:none;--timeline-left:54px;
}
body[data-theme="simple"] .room-back-wall{background:radial-gradient(circle at 1px 1px,rgba(18,18,18,.11) 1px,transparent 1.25px) 0 0/31px 31px,#f2f2ef}
body[data-theme="simple"] .glass,body[data-theme="simple"] .subpanel{background:rgba(251,251,248,.97)!important;border-color:#d7d8d2;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body[data-theme="simple"] button,body[data-theme="simple"] input,body[data-theme="simple"] select,body[data-theme="simple"] textarea{border-radius:3px;box-shadow:none}
body[data-theme="simple"] button{background:#fbfbf8;border-color:#d7d8d2}
body[data-theme="simple"] .primary{background:#202120;color:#fff;border-color:#202120}
body[data-theme="simple"] .timeline{background:#fbfbf8;background-image:radial-gradient(circle,rgba(24,24,24,.10) 0 1px,transparent 1.15px);background-size:24px 24px;background-position:82% 13px;border-color:#d7d8d2;border-radius:3px}
body[data-theme="simple"] .timeline:before{content:"";position:absolute;left:38px;top:0;bottom:0;width:1px;background:linear-gradient(180deg,#171817 0%,#30312f 48%,#171817 100%);z-index:2;opacity:.9}
body[data-theme="simple"] .hour-line,body[data-theme="simple"] .half-line{border-top:0!important}
body[data-theme="simple"] .hour-label{color:transparent;width:38px}
body[data-theme="simple"] .hour-label:nth-of-type(n){background:transparent}
body[data-theme="simple"] .timeline-block.block{left:54px;right:10px;min-height:11px;padding:2px 62px 2px 11px;overflow:visible;color:#171817;background:transparent!important;border:1px solid transparent!important;border-radius:2px;box-shadow:none!important}
body[data-theme="simple"] .timeline-block.block:hover,body[data-theme="simple"] .timeline-block.block.drag-active{background:color-mix(in srgb,var(--block-color,#888) 2.2%,transparent)!important;border-color:rgba(25,25,25,.07)!important;transform:none}
body[data-theme="simple"] .timeline-block.block:before{content:"";position:absolute;left:-18px;top:-2px;width:4px;height:4px;border-radius:50%;background:color-mix(in srgb,var(--block-color,#777) 18%,#171817);box-shadow:0 0 0 1px color-mix(in srgb,var(--block-color,#777) 24%,#fbfbf8),0 0 0 2px #fbfbf8;z-index:6}
body[data-theme="simple"] .block-title{font-size:13px!important;font-weight:590!important;letter-spacing:-.12px;padding-right:36px!important}
body[data-theme="simple"] .block-time{display:none!important}
body[data-theme="simple"] .simple-start{display:block;position:absolute;left:-57px;top:-7px;width:39px;text-align:right;font-size:9px;font-weight:680;color:#242522;font-variant-numeric:tabular-nums}
body[data-theme="simple"] .simple-duration-line{display:block;position:absolute;left:-16.5px;top:10px;bottom:2px;width:1px;background:repeating-linear-gradient(to bottom,#3d3e3b 0 3px,transparent 3px 6px);opacity:0;transition:.15s}
body[data-theme="simple"] .simple-duration{display:block;opacity:0;transform:translateY(-2px);transition:.15s;font-size:9px;color:#777873;margin-top:4px;white-space:nowrap}
body[data-theme="simple"] .block:hover .simple-duration,body[data-theme="simple"] .block.selected .simple-duration{opacity:1;transform:none}
body[data-theme="simple"] .block:hover .simple-duration-line,body[data-theme="simple"] .block.selected .simple-duration-line{opacity:.72}
body[data-theme="simple"] .block-actions{right:3px;top:-3px;background:#fbfbf8;border:1px solid #cfd0ca;border-radius:2px;padding:1px;box-shadow:none}
body[data-theme="simple"] .block-actions button{border-radius:1px;background:transparent;box-shadow:none;border:0}
body[data-theme="simple"] .resize-handle{opacity:0;width:calc(100% + 21px);left:-18px;height:12px;background:linear-gradient(to top,color-mix(in srgb,var(--block-color,#777) 7%,transparent),transparent 72%)}
body[data-theme="simple"] .block:hover .resize-handle{opacity:1}
body[data-theme="simple"] .task-card.card{border-radius:3px;box-shadow:none;background:#fbfbf8;border-color:#d7d8d2;border-left:1px solid #777973}

/* FocusBox Liquid Glass */
body[data-theme="glass"]{
  --bg:#f3e7ed;--panel:rgba(255,252,253,.48);--panel-soft:rgba(255,249,252,.30);--panel-strong:rgba(255,255,255,.72);
  --ink:#302a33;--muted:#887b88;--line:rgba(255,255,255,.72);--line-strong:rgba(177,149,169,.34);
  --accent:#e9a7c8;--accent-soft:rgba(243,182,214,.22);--accent-deep:#a65e84;--accent-border:rgba(220,137,181,.58);
  --accent-wash:rgba(255,228,241,.24);--on-accent:#51263d;--button-bg:linear-gradient(145deg,rgba(255,255,255,.63),rgba(255,242,248,.31));
  --button-hover:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,225,241,.42));--surface-shadow:0 14px 32px rgba(105,72,94,.10),0 3px 10px rgba(255,138,194,.06),inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(255,255,255,.27);
}
body[data-theme="glass"] .glass,body[data-theme="glass"] .subpanel{border-color:rgba(255,255,255,.78);border-radius:21px;background:linear-gradient(145deg,rgba(255,255,255,.45),rgba(255,245,250,.22));backdrop-filter:blur(32px) saturate(1.38);-webkit-backdrop-filter:blur(32px) saturate(1.38);box-shadow:0 23px 54px rgba(78,58,82,.10),0 4px 14px rgba(255,143,198,.05),inset 0 1px 0 rgba(255,255,255,.94),inset 0 -1px 0 rgba(255,255,255,.20)}
body[data-theme="glass"] button,body[data-theme="glass"] input,body[data-theme="glass"] select,body[data-theme="glass"] textarea{border-color:rgba(255,255,255,.78);background:linear-gradient(145deg,rgba(255,255,255,.68),rgba(255,235,245,.30));box-shadow:0 9px 20px rgba(80,55,78,.09),0 2px 6px rgba(229,121,176,.06),inset 0 1px 0 rgba(255,255,255,.98),inset 0 -1px 0 rgba(255,255,255,.28);backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3)}
body[data-theme="glass"] button:hover{border-color:rgba(255,255,255,.96);background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(255,220,239,.42))}
body[data-theme="glass"] .primary{color:#57273f;border-color:rgba(255,255,255,.84);background:linear-gradient(145deg,rgba(255,220,239,.92),rgba(231,151,196,.66) 52%,rgba(194,183,244,.45));box-shadow:0 11px 25px rgba(202,93,152,.18),inset 0 1px 0 rgba(255,255,255,.98),inset 0 -2px 5px rgba(164,72,122,.10)}
body[data-theme="glass"] .timeline{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.52);box-shadow:inset 0 1px 0 rgba(255,255,255,.32);backdrop-filter:blur(24px) saturate(1.28)}
body[data-theme="glass"] .hour-line{border-top-color:rgba(255,255,255,.48)}body[data-theme="glass"] .half-line{border-top-color:rgba(255,255,255,.25)}body[data-theme="glass"] .hour-label{color:#887b88;text-shadow:0 1px 0 rgba(255,255,255,.55)}
body[data-theme="glass"] .task-card.card{position:relative;isolation:isolate;overflow:hidden;border-left-width:1px!important;border-radius:18px!important;min-height:48px;padding:9px 9px 9px 10px;background:linear-gradient(138deg,rgba(255,255,255,.78) 0%,rgba(255,248,252,.46) 48%,color-mix(in srgb,var(--task-color,var(--accent)) 10%,rgba(245,231,242,.30)) 100%)!important;border:1px solid rgba(255,255,255,.92)!important;box-shadow:0 14px 29px rgba(92,62,88,.12),0 3px 8px rgba(225,132,180,.07),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.30),inset 1px 0 0 color-mix(in srgb,var(--task-color,var(--accent)) 20%,transparent)!important;backdrop-filter:blur(25px) saturate(1.48) contrast(1.02)}
body[data-theme="glass"] .task-card.card:before{content:"";position:absolute;z-index:-1;left:9px;right:9px;top:1px;height:42%;border-radius:17px 17px 45% 45%;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,0));opacity:.72}
body[data-theme="glass"] .task-card.card:after{content:"";position:absolute;z-index:-2;width:82px;height:82px;right:-33px;bottom:-49px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--task-color,var(--accent)) 33%,rgba(255,255,255,.32)) 0%,color-mix(in srgb,var(--task-color,var(--accent)) 13%,transparent) 48%,transparent 72%);filter:blur(3px);opacity:.72}
body[data-theme="glass"] .timeline-block.block{isolation:isolate;overflow:hidden;border-left-width:1px!important;border-radius:16px!important;padding:7px 9px 11px 10px;background:linear-gradient(138deg,rgba(255,255,255,.76) 0%,rgba(255,246,251,.43) 48%,color-mix(in srgb,var(--block-color,var(--accent)) 14%,rgba(238,219,233,.28)) 100%)!important;border:1px solid rgba(255,255,255,.92)!important;box-shadow:0 14px 29px rgba(88,59,86,.14),0 3px 9px rgba(227,123,179,.07),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.28),inset 2px 0 0 color-mix(in srgb,var(--block-color,var(--accent)) 28%,transparent)!important;backdrop-filter:blur(24px) saturate(1.50) contrast(1.02);-webkit-backdrop-filter:blur(24px) saturate(1.50) contrast(1.02)}
body[data-theme="glass"] .timeline-block.block:before{content:"";position:absolute;z-index:0;left:8px;right:8px;top:1px;height:45%;border-radius:15px 15px 50% 50%;background:linear-gradient(180deg,rgba(255,255,255,.76),rgba(255,255,255,0));opacity:.72;pointer-events:none}
body[data-theme="glass"] .timeline-block.block:after{content:"";position:absolute;z-index:0;width:108px;height:108px;right:-46px;bottom:-67px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--block-color,var(--accent)) 38%,rgba(255,255,255,.36)) 0%,color-mix(in srgb,var(--block-color,var(--accent)) 15%,transparent) 48%,transparent 73%);filter:blur(3px);opacity:.78;pointer-events:none}
body[data-theme="glass"] .timeline-block.block>*{position:relative;z-index:2}
body[data-theme="glass"] .timeline-block.block:hover{transform:translateY(-1px);border-color:#fff!important;box-shadow:0 19px 38px rgba(87,56,84,.18),0 5px 13px rgba(226,121,177,.10),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.32)!important}
body[data-theme="glass"] .timeline-block.block.selected{transform:translateY(-1px);box-shadow:0 19px 38px rgba(87,56,84,.18),0 5px 13px rgba(226,121,177,.10),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.32)!important}
body[data-theme="glass"] .block-actions button{background:rgba(255,247,252,.68);border:1px solid rgba(255,255,255,.83);border-radius:50%;box-shadow:0 4px 10px rgba(51,68,84,.10),inset 0 1px 0 #fff}
body[data-theme="glass"] .block-title{font-weight:720;text-shadow:0 1px 0 rgba(255,255,255,.58)}
body[data-theme="glass"] .task-to-timebox{border-radius:50%;border:1px solid rgba(255,255,255,.88);background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(248,220,237,.42));color:#7c526b;box-shadow:0 6px 13px rgba(59,74,93,.10),inset 0 1px 0 #fff}

/* FocusBox Frutiger Aero */
body[data-theme="aero"]{
  --bg:#8bd2f2;--panel:rgba(244,253,255,.70);--panel-soft:rgba(229,248,253,.61);--panel-strong:rgba(250,255,255,.87);
  --ink:#17394b;--muted:#5f7f8d;--line:rgba(65,143,172,.20);--line-strong:rgba(40,124,157,.32);--accent:#65d8ef;
  --accent-soft:rgba(130,229,247,.25);--accent-deep:#147fac;--accent-border:#45b8d7;--accent-wash:rgba(211,249,255,.70);--on-accent:#063b53;
  --button-bg:linear-gradient(145deg,rgba(255,255,255,.69),rgba(205,243,250,.43));--button-hover:linear-gradient(145deg,rgba(255,255,255,.84),rgba(175,235,247,.55));
  --surface-shadow:0 13px 29px rgba(8,84,118,.12),0 3px 9px rgba(32,185,216,.07),inset 0 1px 0 rgba(255,255,255,.96),inset 0 -1px 0 rgba(255,255,255,.22);
}
body[data-theme="aero"] .glass,body[data-theme="aero"] .subpanel{background:linear-gradient(145deg,rgba(248,255,255,.70),rgba(193,239,247,.52));border-color:rgba(255,255,255,.70);backdrop-filter:blur(23px) saturate(1.28);-webkit-backdrop-filter:blur(23px) saturate(1.28);box-shadow:0 18px 42px rgba(7,77,109,.14),inset 0 1px 0 rgba(255,255,255,.95)}
body[data-theme="aero"] button,body[data-theme="aero"] input,body[data-theme="aero"] select,body[data-theme="aero"] textarea{background:linear-gradient(145deg,rgba(255,255,255,.74),rgba(167,231,243,.47));border-color:rgba(255,255,255,.77);box-shadow:0 8px 19px rgba(4,85,120,.10),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.23);backdrop-filter:blur(16px) saturate(1.25)}
body[data-theme="aero"] button:hover{background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(142,224,240,.58));border-color:#fff}
body[data-theme="aero"] .primary{background:linear-gradient(180deg,#d9ffff,#55d3e9 55%,#26a8d2);border-color:#168fb9;color:#073a50;box-shadow:inset 0 1px 0 #fff,0 3px 8px rgba(12,102,139,.19)}
body[data-theme="aero"] .timeline{background:rgba(245,255,255,.36);border-color:rgba(255,255,255,.70);backdrop-filter:blur(18px) saturate(1.22)}
body[data-theme="aero"] .hour-line{border-top-color:rgba(74,156,181,.27)}body[data-theme="aero"] .half-line{border-top-color:rgba(91,174,196,.16)}body[data-theme="aero"] .hour-label{color:#5f7f8d;text-shadow:0 1px 0 #fff}
body[data-theme="aero"] .task-card.card{position:relative;isolation:isolate;overflow:hidden;border-left-width:1px!important;border-radius:18px!important;min-height:48px;padding:9px 9px 9px 10px;background:linear-gradient(138deg,rgba(255,255,255,.80) 0%,rgba(232,252,255,.53) 49%,color-mix(in srgb,var(--task-color,var(--accent)) 12%,rgba(181,238,247,.32)) 100%)!important;border:1px solid rgba(255,255,255,.91)!important;box-shadow:0 14px 28px rgba(5,81,113,.14),0 3px 8px rgba(38,187,216,.08),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.27),inset 1px 0 0 color-mix(in srgb,var(--task-color,var(--accent)) 24%,transparent)!important;backdrop-filter:blur(23px) saturate(1.45) contrast(1.02)}
body[data-theme="aero"] .task-card.card:before{content:"";position:absolute;z-index:-1;left:9px;right:9px;top:1px;height:42%;border-radius:17px 17px 45% 45%;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,0));opacity:.72}
body[data-theme="aero"] .task-card.card:after{content:"";position:absolute;z-index:-2;width:82px;height:82px;right:-33px;bottom:-49px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--task-color,var(--accent)) 33%,rgba(255,255,255,.32)) 0%,color-mix(in srgb,var(--task-color,var(--accent)) 13%,transparent) 48%,transparent 72%);filter:blur(3px);opacity:.72}
body[data-theme="aero"] .timeline-block.block{isolation:isolate;overflow:hidden;border-left-width:1px!important;border-radius:16px!important;padding:7px 9px 11px 10px;background:linear-gradient(138deg,rgba(255,255,255,.79) 0%,rgba(229,251,255,.49) 48%,color-mix(in srgb,var(--block-color,var(--accent)) 16%,rgba(171,235,246,.30)) 100%)!important;border:1px solid rgba(255,255,255,.91)!important;box-shadow:0 14px 28px rgba(4,76,108,.15),0 3px 9px rgba(37,185,215,.08),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.27),inset 2px 0 0 color-mix(in srgb,var(--block-color,var(--accent)) 31%,transparent)!important;backdrop-filter:blur(22px) saturate(1.46) contrast(1.02)}
body[data-theme="aero"] .timeline-block.block:before{content:"";position:absolute;z-index:0;left:8px;right:8px;top:1px;height:45%;border-radius:15px 15px 50% 50%;background:linear-gradient(180deg,rgba(255,255,255,.76),rgba(255,255,255,0));opacity:.72;pointer-events:none}
body[data-theme="aero"] .timeline-block.block:after{content:"";position:absolute;z-index:0;width:108px;height:108px;right:-46px;bottom:-67px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--block-color,var(--accent)) 38%,rgba(255,255,255,.36)) 0%,color-mix(in srgb,var(--block-color,var(--accent)) 15%,transparent) 48%,transparent 73%);filter:blur(3px);opacity:.78;pointer-events:none}
body[data-theme="aero"] .timeline-block.block>*{position:relative;z-index:2}
body[data-theme="aero"] .timeline-block.block:hover{transform:translateY(-1px);border-color:#fff!important;box-shadow:0 19px 37px rgba(3,73,105,.19),0 5px 13px rgba(32,182,215,.11),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.31)!important}
body[data-theme="aero"] .timeline-block.block.selected{transform:translateY(-1px);box-shadow:0 19px 37px rgba(3,73,105,.19),0 5px 13px rgba(32,182,215,.11),inset 0 1px 0 #fff,inset 0 -1px 0 rgba(255,255,255,.31)!important}
body[data-theme="aero"] .block-actions button{background:rgba(239,253,255,.72);border:1px solid rgba(255,255,255,.83);border-radius:50%;box-shadow:0 4px 10px rgba(51,68,84,.10),inset 0 1px 0 #fff}
body[data-theme="aero"] .block-title{font-weight:720;text-shadow:0 1px 0 rgba(255,255,255,.58)}
body[data-theme="aero"] .task-to-timebox{border-radius:50%;border:1px solid rgba(255,255,255,.88);background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(180,239,248,.48));color:#2d7389;box-shadow:0 6px 13px rgba(59,74,93,.10),inset 0 1px 0 #fff}
body[data-theme="glass"] .block-time,body[data-theme="aero"] .block-time{opacity:0;transform:translateY(2px);transition:opacity .14s ease,transform .14s ease;pointer-events:none}
body[data-theme="glass"] .block:hover .block-time,body[data-theme="glass"] .block.selected .block-time,body[data-theme="glass"] .block.drag-active .block-time,body[data-theme="aero"] .block:hover .block-time,body[data-theme="aero"] .block.selected .block-time,body[data-theme="aero"] .block.drag-active .block-time{opacity:1;transform:none}

/* FocusBox Wii */
body[data-theme="wii"]{
  --bg:#eef2f4;--panel:rgba(244,246,247,.94);--panel-soft:rgba(235,238,240,.92);--panel-strong:#fff;--ink:#5e6469;--muted:#9aa1a6;
  --line:#c7cbce;--line-strong:#afb5b9;--accent:#66cce7;--accent-soft:#e8f8fc;--accent-deep:#35abd0;--accent-border:#53c2df;
  --accent-wash:#f0fbfe;--on-accent:#fff;--button-bg:linear-gradient(180deg,rgba(255,255,255,.98),rgba(228,230,232,.96));--button-hover:linear-gradient(180deg,#fff,#edf8fb);
  --surface-shadow:0 2px 4px rgba(61,68,73,.13),inset 0 1px 0 rgba(255,255,255,.98);
}
body[data-theme="wii"] .glass,body[data-theme="wii"] .subpanel{border:1px solid #bec3c6;border-radius:17px;background:rgba(242,244,245,.91);box-shadow:0 4px 12px rgba(63,72,79,.13),inset 0 1px 0 rgba(255,255,255,.96);backdrop-filter:blur(15px) saturate(.85);-webkit-backdrop-filter:blur(15px) saturate(.85)}
body[data-theme="wii"] .section-head{background:linear-gradient(180deg,#fcfcfc,#e0e2e4);border-color:#c0c5c8;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(255,255,255,.7);border-bottom:2px solid rgba(87,199,227,.72);margin:-12px -12px 10px;padding:10px 12px}
body[data-theme="wii"] button,body[data-theme="wii"] input,body[data-theme="wii"] select,body[data-theme="wii"] textarea{background:var(--button-bg);border-color:#b9c0c5;box-shadow:inset 0 1px 0 #fff}
body[data-theme="wii"] button:hover{border-color:#55c6e2;background:linear-gradient(180deg,#fff,#e5f9fd);color:#28a5c8}
body[data-theme="wii"] .primary{background:linear-gradient(180deg,#8edff1,#43bddc);border-color:#33a9ca;color:#fff}
body[data-theme="wii"] .timeline{background:rgba(246,247,248,.72);border-color:#bec3c6}
body[data-theme="wii"] .hour-line{border-top-color:#cbd0d3}body[data-theme="wii"] .half-line{border-top-color:#e1e3e4}body[data-theme="wii"] .hour-label{color:#969da2;text-shadow:0 1px 0 #fff}
body[data-theme="wii"] .timeline-block.block{border:1px solid #adb3b7!important;border-top:3px solid color-mix(in srgb,var(--block-color,var(--accent)) 62%,#d5d9dc)!important;border-left:1px solid #adb3b7!important;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(218,221,223,.95))!important;box-shadow:inset 0 1px 0 #fff,0 3px 6px rgba(67,75,81,.17)!important;color:#60666b;padding:6px 8px 10px}
body[data-theme="wii"] .timeline-block.block:after{content:"";position:absolute;left:2px;right:2px;top:2px;height:34%;border-radius:11px 11px 55% 55%;background:linear-gradient(180deg,rgba(255,255,255,.76),rgba(255,255,255,0));pointer-events:none}
body[data-theme="wii"] .timeline-block.block:hover,body[data-theme="wii"] .timeline-block.block.drag-active{border-color:#4bc0de!important;border-top-color:color-mix(in srgb,var(--block-color,var(--accent)) 68%,#4bc0de)!important;box-shadow:0 0 0 2px rgba(75,192,222,.22),inset 0 1px 0 #fff,0 6px 13px rgba(47,94,108,.18)!important;z-index:12}
body[data-theme="wii"] .timeline-block.block.selected{transform:translateY(-1px);box-shadow:inset 0 1px 0 #fff,0 7px 15px rgba(47,94,108,.18)!important;z-index:12}
body[data-theme="wii"] .block-title{color:#62686d;font-weight:650;text-shadow:0 1px 0 #fff}
body[data-theme="wii"] .block-time{background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(230,232,234,.90));border:1px solid #bcc1c4;color:#7d8489;border-radius:8px;box-shadow:inset 0 1px 0 #fff;padding:1px 5px}
body[data-theme="wii"] .block-actions button{border:1px solid #b6bcc0;border-radius:50%;background:linear-gradient(180deg,#fff,#dfe2e4);color:#6c7277;box-shadow:inset 0 1px 0 #fff}
body[data-theme="wii"] .resize-handle:after{background:#8f989d;box-shadow:0 1px 0 #fff}
body[data-theme="wii"] .task-card.card{border:1px solid #b8bdc0;border-top:3px solid color-mix(in srgb,var(--task-color) 58%,#d9dcde);border-left:1px solid #b8bdc0;border-radius:14px;background:linear-gradient(180deg,#fff,#e1e4e6);box-shadow:inset 0 1px 0 #fff,0 2px 5px rgba(67,75,81,.12)}
body[data-theme="wii"] .task-to-timebox{background:linear-gradient(180deg,#fff,#e1e4e6);border-color:#b8bec2;color:#70767b;box-shadow:inset 0 1px 0 #fff;border-radius:50%}

/* Theme dialog labels and color controls */
.color-choice-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}
.color-choice-row .color-choice{width:25px;height:25px;min-width:25px;padding:0;border-radius:50%;background:var(--swatch)!important;border:3px solid transparent!important;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)!important}
.color-choice-row .color-choice.active{border-color:var(--panel-strong)!important;outline:2px solid var(--swatch)}
#itemColor{height:34px;padding:3px}
body.resizing-item,body.resizing-item *{user-select:none!important;-webkit-user-select:none!important}

/* Prevent the top controls from colliding in the real app and preview. */
.topbar{align-items:flex-start}
.top-actions{max-width:58%;row-gap:6px}
@media(max-width:900px){.topbar{position:relative;top:0;flex-direction:column;align-items:stretch}.top-actions{max-width:none;width:100%;justify-content:flex-start}.main-tabs{top:0}.tasks-zone{top:10px}}
@media(max-width:760px){.schedule-grid{gap:9px}.tasks-zone,.timeline-wrap{padding:10px}.block-actions{opacity:1}.timeline-block.block{left:calc(var(--timeline-left) + 5px);right:5px}.top-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.top-actions button{min-width:0}.top-actions button span{display:none}.badge{display:none!important}}
/* v3 QA fix: sticky offset in the old preview pushed the main tabs over DAY tabs. */
.main-tabs{position:relative!important;top:auto!important}
.schedule-toolbar{position:relative;z-index:3;margin-top:0;padding-top:2px}

/* --------------------------------------------------------------------------
   v4 interaction QA fixes
   -------------------------------------------------------------------------- */
/* Keep editor chrome anchored inside translucent blocks. The v3 theme rule
   made every child position:relative, which displaced these absolute tools. */
body[data-theme="glass"] .timeline-block.block>.block-actions,
body[data-theme="aero"] .timeline-block.block>.block-actions{
  position:absolute!important;right:5px;top:5px;z-index:8;
}
body[data-theme="glass"] .timeline-block.block>.resize-handle,
body[data-theme="aero"] .timeline-block.block>.resize-handle{
  position:absolute!important;
}
body[data-theme="glass"] .timeline-block.block> :not(.block-actions):not(.resize-handle),
body[data-theme="aero"] .timeline-block.block> :not(.block-actions):not(.resize-handle){
  position:relative;z-index:2;
}

/* FocusBox-like resize grip: centered at the true bottom edge, with a generous
   invisible pointer target but no full-width bar floating through the block. */
.resize-handle{
  position:absolute!important;
  left:50%!important;
  right:auto!important;
  bottom:0!important;
  width:54px!important;
  height:13px!important;
  transform:translateX(-50%);
  cursor:ns-resize;
  touch-action:none;
  z-index:9!important;
  border-radius:999px;
  background:transparent!important;
}
.resize-handle:after{
  content:"";
  position:absolute;
  left:50%;
  bottom:3px;
  width:30px;
  height:3px;
  border-radius:999px;
  background:color-mix(in srgb,var(--block-color,var(--accent)) 52%,rgba(79,91,98,.28));
  transform:translateX(-50%);
  box-shadow:0 1px 0 rgba(255,255,255,.68);
  opacity:.58;
  transition:opacity .14s ease,transform .14s ease;
}
.timeline-block:hover>.resize-handle:after,
.timeline-block.drag-active>.resize-handle:after{opacity:.95;transform:translateX(-50%) scaleX(1.08)}
body[data-theme="simple"] .resize-handle{opacity:0!important;left:50%!important;width:54px!important;height:13px!important}
body[data-theme="simple"] .block:hover>.resize-handle{opacity:1!important}
body[data-theme="simple"] .resize-handle:after{background:#565854;box-shadow:none;height:2px}
body[data-theme="glass"] .resize-handle:after{background:linear-gradient(90deg,rgba(255,255,255,.28),color-mix(in srgb,var(--block-color,var(--accent)) 58%,rgba(195,123,164,.28)),rgba(255,255,255,.34));box-shadow:0 1px 0 rgba(255,255,255,.9),0 2px 6px rgba(125,76,107,.12)}
body[data-theme="aero"] .resize-handle:after{background:linear-gradient(90deg,rgba(255,255,255,.28),color-mix(in srgb,var(--block-color,var(--accent)) 62%,rgba(36,147,178,.34)),rgba(255,255,255,.36));box-shadow:0 1px 0 rgba(255,255,255,.94),0 2px 6px rgba(22,115,143,.14)}

/* Dialog close/cancel controls must never invoke native required-field
   validation. app.js handles save validation; close buttons bypass it. */
.modal-card .x{flex:0 0 auto}
.modal-card footer button[data-close-dialog]{min-width:64px}

/* Self-contained preview map used only in TRAVEROOM_DEMO. The deployed app
   continues to use Google Maps Embed when an API key is configured. */
.demo-map{position:relative;isolation:isolate;width:100%;height:100%;min-height:260px;overflow:hidden;background:linear-gradient(145deg,#e8f2eb,#dce9f6);color:#344b56}
.demo-map-grid{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.48) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.48) 1px,transparent 1px);background-size:38px 38px;opacity:.72}
.demo-map:before,.demo-map:after{content:"";position:absolute;border-radius:48%;background:rgba(155,205,169,.45);filter:blur(1px)}
.demo-map:before{width:42%;height:34%;left:-7%;bottom:8%;transform:rotate(-14deg)}
.demo-map:after{width:36%;height:29%;right:-8%;top:8%;transform:rotate(18deg)}
.demo-map-road{position:absolute;height:18px;background:rgba(255,255,255,.85);box-shadow:0 0 0 1px rgba(116,145,158,.10);border-radius:999px;transform-origin:center}
.demo-map-road.road-a{width:135%;left:-20%;top:46%;transform:rotate(-18deg)}
.demo-map-road.road-b{width:110%;left:-2%;top:58%;transform:rotate(29deg)}
.demo-map-pin{position:absolute;left:57%;top:42%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50% 50% 50% 8px;rotate:-45deg;display:grid;place-items:center;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(116,188,219,.86));border:1px solid rgba(255,255,255,.96);box-shadow:0 12px 24px rgba(63,119,145,.25),inset 0 1px 0 #fff;color:#287ca6;font-size:22px}
.demo-map-pin::first-letter{rotate:45deg}
.demo-map-label{position:absolute;left:14px;bottom:14px;z-index:4;display:grid;gap:2px;max-width:62%;padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.9);backdrop-filter:blur(12px);box-shadow:0 7px 20px rgba(58,92,109,.12)}
.demo-map-label strong{font-size:12px}.demo-map-label small{font-size:9px;color:#6f818a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.demo-map-link,.map-open-external{position:absolute;right:12px;bottom:12px;z-index:5;text-decoration:none;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:rgba(255,255,255,.82);color:var(--ink);font-size:10px;font-weight:750;backdrop-filter:blur(10px);box-shadow:0 5px 14px rgba(49,72,84,.10)}
.map-stage,.detail-map,.mini-map{position:relative}
.map-stage iframe+.map-open-external,.detail-map iframe+.map-open-external,.mini-map iframe+.map-open-external{display:block}

@media(max-width:760px){
  .resize-handle{width:64px!important;height:16px!important}
  .resize-handle:after{bottom:4px;width:34px}
}
.demo-map-pin span{display:block;transform:rotate(45deg)}

/* --------------------------------------------------------------------------
   v5 — quieter UI, room-depth backgrounds, icon controls, direct block drag
   -------------------------------------------------------------------------- */
.top-actions{align-items:center;max-width:none;flex-wrap:nowrap}
.top-actions .icon-only{width:39px;height:39px;min-width:39px;padding:0;display:grid;place-items:center;border-radius:12px}
.top-actions .icon-only svg,.top-actions .theme-control svg,.status-badge svg{width:18px;height:18px;display:block}
.top-actions .theme-control{min-height:39px;display:flex;align-items:center;gap:7px;padding:8px 11px}
.status-badge{width:30px;height:30px;padding:0;display:grid;place-items:center;border-radius:999px}
.status-badge svg{width:15px;height:15px}
.empty-quiet{min-height:44px;padding:0!important}
.map-fallback-quiet{min-height:220px}
.section-head{align-items:center;min-height:23px}
.theme-tile{grid-template-columns:72px 1fr;grid-template-rows:auto;min-height:70px}
.theme-preview{grid-row:auto}.theme-tile strong{align-self:center}
.confirm-modal{width:min(360px,calc(100vw - 28px))}.confirm-modal .modal-card{min-height:0}.confirm-modal .modal-body{padding:0}
.place-card[data-place-id]{transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}
.place-card[data-place-id]:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}

/* FocusBox-like direct manipulation: the actual block follows the 30-minute
   slots instead of turning into a detached text label. */
.timeline-block.drag-live{opacity:.96!important;z-index:60!important;cursor:grabbing!important;transition:none!important;transform:scale(1.008)!important;filter:saturate(1.04);box-shadow:0 18px 36px rgba(34,71,70,.22)!important}
.timeline-block.drag-live .block-actions,.timeline-block.drag-live .resize-handle{opacity:0!important;pointer-events:none!important}
.timeline-block.dragging-to-task{opacity:.42!important;transform:scale(.985)!important}
.drag-card-preview{min-width:190px;max-width:300px;display:grid;gap:2px;padding:10px 13px;border-radius:14px;background:color-mix(in srgb,var(--panel-strong) 88%,transparent);backdrop-filter:blur(22px) saturate(1.25);-webkit-backdrop-filter:blur(22px) saturate(1.25);transform:translate(-14px,-14px);font-size:12px}
.drag-card-preview strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-card-preview span{font-size:9px;color:var(--muted);min-height:11px}
body[data-theme="glass"] .drag-card-preview{border-color:rgba(255,255,255,.88);background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(255,235,245,.34))}
body[data-theme="aero"] .drag-card-preview{border-color:rgba(255,255,255,.90);background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(178,237,247,.45))}
body[data-theme="simple"] .drag-card-preview{border-radius:3px;background:#fbfbf8;border-color:#d7d8d2;box-shadow:0 8px 24px rgba(0,0,0,.09)}
body[data-theme="wii"] .drag-card-preview{background:linear-gradient(180deg,#fff,#e3e6e8);border-color:#b9c0c5}

/* Theme-specific room depth. The UI surfaces stay sharp; only scene art is soft. */
.room-back-wall::before,.room-back-wall::after{content:"";position:absolute;pointer-events:none}

/* Simple — white ink room with a perspective drafting-grid floor and sides. */
body[data-theme="simple"] .room-scene{background:#f7f7f3}
body[data-theme="simple"] .room-back-wall{inset:0;filter:none;transform:none;background-color:#fbfbf8;background-image:radial-gradient(circle at 1px 1px,rgba(25,27,25,.055) 1px,transparent 1.25px);background-size:28px 28px}
body[data-theme="simple"] .room-side{opacity:.58;background-color:#f3f3ef;background-image:linear-gradient(rgba(45,47,45,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(45,47,45,.08) 1px,transparent 1px);background-size:52px 52px}
body[data-theme="simple"] .room-side-left{background-image:linear-gradient(rgba(45,47,45,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(45,47,45,.07) 1px,transparent 1px)}
body[data-theme="simple"] .room-side-right{background-image:linear-gradient(rgba(45,47,45,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(45,47,45,.07) 1px,transparent 1px)}
body[data-theme="simple"] .room-floor{left:-15%;right:-15%;bottom:-38%;height:62%;opacity:.76;background-color:#f2f2ee;background-image:linear-gradient(rgba(35,37,35,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(35,37,35,.13) 1px,transparent 1px);background-size:70px 70px;box-shadow:inset 0 1px 0 rgba(0,0,0,.12)}
body[data-theme="simple"] .room-ceiling{opacity:.25;background:#f8f8f4}body[data-theme="simple"] .room-window{display:none}body[data-theme="simple"] .room-glow{background:radial-gradient(circle at 52% 8%,rgba(255,255,255,.92),transparent 38%)}

/* Liquid Glass — the same blue/lilac/pink wash used by FocusBox, with subtle
   translucent planes to keep the room perspective without turning it into art. */
body[data-theme="glass"] .room-scene{background:linear-gradient(135deg,#c8edff 0%,#d9dcff 43%,#f1d9f2 72%,#d9f5ee 100%)}
body[data-theme="glass"] .room-back-wall{inset:0;filter:none;transform:none;background:linear-gradient(135deg,#c8edff 0%,#d9dcff 43%,#f1d9f2 72%,#d9f5ee 100%)}
body[data-theme="glass"] .room-back-wall::before{width:42vw;height:42vw;left:-10vw;top:8vh;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.92),rgba(120,208,255,.34) 34%,rgba(149,128,255,.08) 68%,transparent 72%)}
body[data-theme="glass"] .room-back-wall::after{width:48vw;height:48vw;right:-12vw;bottom:-16vw;border-radius:50%;background:radial-gradient(circle at 40% 34%,rgba(255,255,255,.78),rgba(255,161,216,.25) 31%,rgba(110,222,213,.15) 66%,transparent 71%)}
body[data-theme="glass"] .room-side{opacity:.25;background:linear-gradient(90deg,rgba(255,255,255,.52),rgba(217,220,255,.12))}body[data-theme="glass"] .room-side-right{background:linear-gradient(-90deg,rgba(255,255,255,.50),rgba(241,217,242,.10))}
body[data-theme="glass"] .room-floor{opacity:.36;background-image:linear-gradient(rgba(255,255,255,.38) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.32) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.28),rgba(216,229,255,.12));background-size:92px 72px,92px 72px,auto}
body[data-theme="glass"] .room-ceiling{opacity:.18;background:rgba(255,255,255,.55)}body[data-theme="glass"] .room-window{display:none}body[data-theme="glass"] .room-glow{background:radial-gradient(circle at 52% 0%,rgba(255,255,255,.55),transparent 38%)}

/* Frutiger Aero — exact FocusBox timer-room artwork, softly blurred behind
   crisp aqua-glass controls. */
body[data-theme="aero"] .room-scene{background:#8cd5df}
body[data-theme="aero"] .room-back-wall{inset:-18px;transform:scale(1.04);filter:blur(7px) saturate(.92) contrast(.96);background-image:linear-gradient(135deg,rgba(218,255,249,.10),rgba(44,176,210,.10)),url("assets/frutiger-timer-bg.webp");background-size:cover;background-position:center;background-repeat:no-repeat}
body[data-theme="aero"] .room-side{opacity:.24;background:linear-gradient(90deg,rgba(214,255,252,.66),rgba(56,181,211,.12))}body[data-theme="aero"] .room-side-right{background:linear-gradient(-90deg,rgba(214,255,252,.62),rgba(56,181,211,.10))}
body[data-theme="aero"] .room-floor{opacity:.28;background:linear-gradient(180deg,rgba(226,255,253,.58),rgba(75,183,211,.18));box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}body[data-theme="aero"] .room-ceiling{opacity:.16;background:rgba(238,255,255,.72)}body[data-theme="aero"] .room-window{display:none}body[data-theme="aero"] .room-glow{background:linear-gradient(180deg,rgba(224,255,250,.08),rgba(0,108,150,.04))}

/* Wii — FocusBox Wii timer scene with a mild blur, then clean plastic planes. */
body[data-theme="wii"] .room-scene{background:#eaf3f8}
body[data-theme="wii"] .room-back-wall{inset:-16px;transform:scale(1.04);filter:blur(6px) saturate(.82) contrast(.98);background-image:linear-gradient(rgba(236,245,249,.24),rgba(236,245,249,.24)),url("assets/wii-timer-bg.png");background-size:cover;background-position:center;background-repeat:no-repeat}
body[data-theme="wii"] .room-side{opacity:.22;background:linear-gradient(90deg,rgba(255,255,255,.88),rgba(192,218,231,.20))}body[data-theme="wii"] .room-side-right{background:linear-gradient(-90deg,rgba(255,255,255,.88),rgba(192,218,231,.20))}
body[data-theme="wii"] .room-floor{opacity:.36;background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(218,229,236,.38));border-top:2px solid rgba(77,190,221,.24)}body[data-theme="wii"] .room-ceiling{opacity:.15;background:#fff}body[data-theme="wii"] .room-window{display:none}body[data-theme="wii"] .room-glow{background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(194,224,238,.04))}

@media(max-width:760px){
  .top-actions{display:flex!important;gap:6px;flex-wrap:wrap!important}
  .top-actions .theme-control{flex:1 1 145px;justify-content:center}
  .top-actions .icon-only{flex:0 0 39px}
  .status-badge{display:none!important}
  .room-side{width:34%}.room-floor{bottom:-34%}
}
/* Keep the themed room above the body paint and below the app. */
.room-scene{z-index:0!important}
#app{position:relative;z-index:1}
body[data-theme="aero"] .workspace.glass{background:linear-gradient(145deg,rgba(248,255,255,.48),rgba(193,239,247,.34))!important}
body[data-theme="aero"] .subpanel{background:linear-gradient(145deg,rgba(248,255,255,.57),rgba(193,239,247,.42))!important}
body[data-theme="aero"] .main-tabs{background:rgba(236,253,255,.45)!important}
body[data-theme="glass"] .workspace.glass{background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(255,245,250,.18))!important}
body[data-theme="glass"] .subpanel{background:linear-gradient(145deg,rgba(255,255,255,.42),rgba(255,245,250,.23))!important}
body[data-theme="wii"] .workspace.glass{background:rgba(242,244,245,.78)!important}
body[data-theme="wii"] .subpanel{background:rgba(244,246,247,.82)!important}

/* Traveroom v6 */
.legacy-theme-icon{font-size:19px;line-height:1;display:grid;place-items:center;min-width:18px}
.legacy-settings-icon{font-size:19px;line-height:1;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.category-settings{display:grid;gap:8px;padding-top:2px}.category-settings-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.category-settings-head>button{width:34px;height:32px;padding:0;display:grid;place-items:center;font-size:18px}.category-editor{display:grid;gap:7px;max-height:240px;overflow:auto;padding-right:2px}.category-edit-row{display:grid;grid-template-columns:58px minmax(0,1fr) 34px;gap:7px;align-items:center}.category-edit-row input{min-width:0}.category-edit-row .category-emoji{text-align:center;font-size:17px;padding-left:5px;padding-right:5px}.category-delete{width:34px;height:34px;padding:0;display:grid;place-items:center}.category-delete:disabled{opacity:.28;cursor:default}
body[data-theme="simple"] .timeline-block.block.selected{outline:none!important;outline-offset:0!important;background:color-mix(in srgb,var(--block-color,#888) 2.2%,transparent)!important;border-color:transparent!important;box-shadow:none!important;transform:none!important}


/* Traveroom v7 ----------------------------------------------------------- */
/* Default opens as a pure-white perspective room, echoing Simple's depth
   without the ink/dot treatment. */
body[data-theme="default"] .room-scene{background:#fff!important}
body[data-theme="default"] .room-back-wall{inset:0!important;filter:none!important;transform:none!important;background:#fff!important;background-image:linear-gradient(rgba(122,132,138,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(122,132,138,.045) 1px,transparent 1px)!important;background-size:72px 72px!important}
body[data-theme="default"] .room-side{opacity:.42!important;background:#fff!important;background-image:linear-gradient(rgba(122,132,138,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(122,132,138,.075) 1px,transparent 1px)!important;background-size:72px 72px!important}
body[data-theme="default"] .room-floor{left:-15%!important;right:-15%!important;bottom:-38%!important;height:62%!important;opacity:.72!important;background:#fff!important;background-image:linear-gradient(rgba(116,126,132,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(116,126,132,.11) 1px,transparent 1px)!important;background-size:78px 78px!important;box-shadow:inset 0 1px 0 rgba(30,40,46,.05)!important}
body[data-theme="default"] .room-ceiling{background:#fff!important;opacity:.78!important}
body[data-theme="default"] .room-window{display:none!important}
body[data-theme="default"] .room-glow{background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.98),transparent 42%)!important}

/* Collaboration state is deliberately textual, never represented by a lock. */
.status-badge{width:auto!important;height:30px!important;padding:0 10px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:10px!important;font-weight:800!important;white-space:nowrap}

/* Place category management lives with Places, not general settings. */
#managePlaceCategoriesBtn{font-weight:750}

/* Theme-aware custom trip date picker. */
[data-trip-date-picker]{cursor:pointer;caret-color:transparent}
.date-picker-dialog .modal-card{width:min(430px,calc(100vw - 28px));overflow:hidden}
.date-picker-dialog header{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;text-align:center}
.date-picker-dialog header h2{margin:0;text-align:center;font-size:16px}
.calendar-nav{width:36px;height:36px;padding:0;display:grid;place-items:center;font-size:26px;line-height:1;border-radius:10px}
.calendar-body{padding-top:12px!important}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays{margin-bottom:6px}.calendar-weekdays span{text-align:center;font-size:10px;font-weight:800;color:var(--muted);padding:4px 0}
.calendar-blank{aspect-ratio:1}
.calendar-day{aspect-ratio:1;padding:0;display:grid;place-items:center;border-radius:10px;background:transparent;border-color:transparent;box-shadow:none;font-size:12px;font-weight:700}
.calendar-day:hover{transform:none;background:var(--panel-soft);border-color:var(--line);box-shadow:none}
.calendar-day.today{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent)}
.calendar-day.selected{background:var(--accent)!important;color:var(--on-accent,#fff)!important;border-color:var(--accent)!important;box-shadow:none!important}
body[data-theme="simple"] .date-picker-dialog .modal-card,body[data-theme="simple"] .calendar-day,body[data-theme="simple"] .calendar-nav{border-radius:2px}
body[data-theme="simple"] .calendar-day.selected{background:#202120!important;color:#fff!important}
body[data-theme="glass"] .date-picker-dialog .modal-card{background:linear-gradient(145deg,rgba(255,255,255,.70),rgba(245,238,255,.46));backdrop-filter:blur(30px) saturate(1.28);-webkit-backdrop-filter:blur(30px) saturate(1.28);border-color:rgba(255,255,255,.88)}
body[data-theme="aero"] .date-picker-dialog .modal-card{background:linear-gradient(145deg,rgba(250,255,255,.80),rgba(190,239,247,.58));backdrop-filter:blur(24px) saturate(1.22);-webkit-backdrop-filter:blur(24px) saturate(1.22);border-color:rgba(255,255,255,.92)}
body[data-theme="wii"] .date-picker-dialog .modal-card{background:linear-gradient(180deg,#fff,#edf1f3);border-color:#bdc5ca}
body[data-theme="wii"] .calendar-day.selected{background:#69c9df!important;color:#173a50!important;border-color:#69c9df!important}

@media(max-width:760px){.status-badge{display:inline-flex!important}.date-picker-dialog .modal-card{width:min(390px,calc(100vw - 18px))}}

/* --------------------------------------------------------------------------
   v8 - optional account home. Link-only guest collaboration stays intact.
   -------------------------------------------------------------------------- */
.landing-room-card{width:min(720px,100%)}
.landing-card-actions{position:absolute;right:20px;top:20px;display:flex;gap:8px;align-items:center;z-index:4}
.landing-card-actions .icon-only{width:38px;height:38px}
.account-pill{min-height:38px;padding:8px 13px;border-radius:999px;font-size:12px;font-weight:750;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.my-trips-section{margin:4px 0 20px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel-soft)}
.landing-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.landing-section-head strong{font-size:13px}
.landing-section-head .icon-only{width:31px;height:31px}
.my-trips-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:245px;overflow:auto;padding-right:2px}
.my-trip-card{width:100%;display:block;text-align:left;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--button-bg);box-shadow:none;min-width:0}
.my-trip-card:hover{border-color:var(--accent-border);background:var(--button-hover)}
.my-trip-card strong{display:block;font-size:13px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.my-trip-card small{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}
.my-trips-empty{grid-column:1/-1;min-height:58px;border:1px dashed var(--line);border-radius:13px}
.auth-dialog .modal-card{max-width:430px}
.account-pane{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0}
.account-email{font-size:13px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-claim{width:100%;justify-content:center}
.legacy-theme-icon-button{display:grid;place-items:center}
body[data-theme="simple"] .my-trips-section,body[data-theme="simple"] .my-trip-card{border-radius:3px}
body[data-theme="glass"] .my-trips-section{background:linear-gradient(145deg,rgba(255,255,255,.43),rgba(255,245,250,.20));border-color:rgba(255,255,255,.74);backdrop-filter:blur(22px) saturate(1.18);-webkit-backdrop-filter:blur(22px) saturate(1.18)}
body[data-theme="glass"] .my-trip-card{background:linear-gradient(145deg,rgba(255,255,255,.54),rgba(255,247,252,.26));border-color:rgba(255,255,255,.72)}
body[data-theme="aero"] .my-trips-section{background:linear-gradient(145deg,rgba(248,255,255,.56),rgba(193,239,247,.35));border-color:rgba(255,255,255,.82);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
body[data-theme="wii"] .my-trips-section{background:rgba(246,248,249,.86);border-color:#c8d0d5}
@media(max-width:640px){.landing-card-actions{right:13px;top:13px}.account-pill{max-width:138px}.brand-lockup{padding-top:44px}.my-trips-list{grid-template-columns:1fr;max-height:218px}}
.switch-row{display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--panel-soft);font-size:12px;font-weight:700}.switch-row input{width:17px;height:17px;margin:0}


/* --------------------------------------------------------------------------
   v10 - mobile theme access, tighter mobile type, grid-locked dragging
   -------------------------------------------------------------------------- */
/* While dragging a timebox the JS moves by half-hour slots; keep the transition
   subtle enough to feel like FocusBox rather than a free-floating card. */
body.dragging-item .timeline-block.drag-live{
  transition:top .08s cubic-bezier(.2,.75,.25,1),box-shadow .12s ease,transform .12s ease!important;
  will-change:top;
}

@media(max-width:760px){
  /* v8/v9 hid every span in top action buttons, including the actual theme
     glyph. Only the text label should disappear on compact screens. */
  .top-actions button span{display:initial}
  #themeBtnLabel{display:none!important}
  #themeBtn .legacy-theme-icon{display:grid!important;font-size:18px;line-height:1}
  #themeBtn{display:grid!important;place-items:center!important;width:39px!important;min-width:39px!important;padding:0!important}

  /* Keep titles readable, but bring oversized controls closer to FocusBox. */
  .main-tabs button{font-size:10px!important;padding:7px 3px!important}
  .day-tabs button{font-size:10.5px!important;min-width:68px!important;padding:7px 9px!important}
  .day-tabs small{font-size:9px!important}
  .panel-toolbar>.primary,#addItemBtn,#addPlaceBtn{font-size:10.5px!important;padding:8px 10px!important}
  #managePlaceCategoriesBtn,.toolbar-actions button,.place-filters button{font-size:10px!important;padding:7px 9px!important}
  .section-head strong{font-size:12.5px!important}
  .place-card h3{font-size:13px!important}
  .place-card .card-actions button,.place-card .card-actions a{font-size:10px!important}
  .theme-grid button{font-size:11px!important}

  /* Mobile touch should not trigger browser selection while moving blocks. */
  .timeline-block,.task-card{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
}
