/* V21 responsive map workspace */
.map-page{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);padding:18px 24px 22px;gap:16px}
.map-heading{display:grid;grid-template-columns:minmax(270px,.8fr) minmax(540px,1.2fr);align-items:end;gap:34px}
.map-heading h1{font-size:clamp(34px,4vw,58px);margin:3px 0 5px}
.focus-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;border:1px solid #292c32;border-radius:14px;background:#121317}
.focus-strip label{display:flex;flex-direction:column;gap:3px;padding:7px 10px;color:var(--soft);font-size:9px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.focus-strip input{width:100%;border:0;background:transparent;color:var(--text);font-weight:600;padding:3px 0;outline:0;text-transform:none;letter-spacing:0}
.map-workspace{min-height:0;display:grid;grid-template-columns:190px minmax(0,1fr);border:1px solid #2b2d33;border-radius:18px;overflow:hidden;background:#101115}
.map-tools{padding:15px;border-right:1px solid #2a2c31;background:#131418;overflow-y:auto}.map-tools h2{font-size:14px;margin:0}.map-tools>p{font-size:11px;color:var(--soft);margin:3px 0 13px}
.map-tools>button{width:calc(50% - 4px);min-height:66px;margin:3px 1px;padding:9px 5px;border:1px solid #30343b;border-radius:11px;background:#191b20;color:#c2c3c8;font-size:10px;font-weight:650}.map-tools>button:hover{border-color:#705158;background:#201a1d}.map-tools>button i{display:block;width:23px;height:23px;margin:0 auto 6px;border:1px solid #91646c;border-radius:7px;background:#29191d}.map-tools hr{border:0;border-top:1px solid #292c31;margin:15px 0}
.map-search{display:flex;flex-direction:column;gap:7px;color:var(--soft);font-size:9px;text-transform:uppercase;letter-spacing:.11em;font-weight:700}.map-search input{width:100%;padding:11px;border:1px solid #30343b;border-radius:10px;background:#17191e;color:var(--text);font-size:12px;text-transform:none;letter-spacing:0}
.map-canvas{min-width:0;min-height:0;position:relative;display:grid;grid-template-rows:48px minmax(0,1fr);background-color:#0d0e11;background-image:radial-gradient(#2c2e34 1px,transparent 1px);background-size:22px 22px}.map-canvas:fullscreen{height:100dvh}
.map-toolbar{z-index:8;display:flex;align-items:center;justify-content:space-between;padding:0 12px;border-bottom:1px solid #25272d;background:rgba(15,16,19,.94);color:var(--muted);font-size:11px}.map-toolbar>span:before{content:'';display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#a9858b}.map-toolbar>div{display:flex;gap:5px}.map-toolbar button{height:30px;padding:0 9px;border:1px solid #30333a;border-radius:8px;background:#1a1c21;color:#aeb0b7;font-size:10px}.map-toolbar button:hover{border-color:#72535a;color:var(--text)}
.map-viewport{min-height:0;overflow:auto;overscroll-behavior:contain}.map-world{transform-origin:top left;min-width:max-content;min-height:100%;padding:64px 70px 120px;display:flex;align-items:flex-start;gap:90px;transition:transform .15s ease}.map-branch{min-width:max-content;display:flex;flex-direction:column;align-items:center}
.map-level{position:relative;display:flex;justify-content:center;gap:34px}.map-level.goals,.map-level.projects{margin-top:38px}.map-level.tasks{margin-top:38px;gap:14px}.map-column{position:relative;display:flex;flex-direction:column;align-items:center}.map-level.goals:before,.map-level.projects:before,.map-level.tasks:before,.map-column:before{content:'';position:absolute;top:-20px;left:50%;height:20px;border-left:1px solid #50535b}.map-level.goals>.map-column:after,.map-level.projects>.map-column:after{content:'';position:absolute;top:-20px;left:0;right:0;border-top:1px solid #50535b}.map-level.goals>.map-column:first-child:after,.map-level.projects>.map-column:first-child:after{left:50%}.map-level.goals>.map-column:last-child:after,.map-level.projects>.map-column:last-child:after{right:50%}
.map-node{position:relative;width:188px;border:1px solid #41444c;border-radius:14px;background:#1b1d22;box-shadow:0 12px 30px rgba(0,0,0,.22);overflow:hidden}.map-node.journey{background:#282426;border-color:#75545b}.map-node.goal{background:#202329;border-color:#4c5260}.map-node.project{background:#1d2025}.map-node.task,.map-node.repeat,.map-node.habit{width:165px;background:#17191d}.map-node.parked{opacity:.42;filter:saturate(.4)}.map-node.drag-over{outline:2px solid #c3a0a5;outline-offset:3px}
.node-open{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:105px;padding:13px;border:0;background:transparent;color:var(--text);text-align:left}.node-kind{display:flex;align-items:center;gap:6px;color:#b88d94;text-transform:uppercase;letter-spacing:.12em;font-size:8px;font-weight:800}.node-kind i{width:14px;height:14px;border:1px solid currentColor;border-radius:5px}.node-open strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:12px 0 5px;font-size:14px;line-height:1.28}.node-open small{color:var(--muted);font-size:9px}.node-actions{display:flex;gap:5px;padding:7px;border-top:1px solid #30333a}.node-actions button{flex:1;min-height:28px;padding:4px;border:1px solid #393d45;border-radius:7px;background:#202329;color:#aeb0b6;font-size:8px}.node-actions .node-add{color:#ddc8cb;border-color:#61454b;background:#2b1b1f}
.orphan-zone{align-self:flex-end;min-width:470px;margin-top:260px;padding:18px;border:1px dashed #3b3e45;border-radius:16px;background:rgba(18,19,23,.82)}.orphan-zone h2{margin:0;font-size:14px}.orphan-zone p{margin:4px 0 14px;color:var(--muted);font-size:10px}.orphan-zone>div{display:flex;gap:12px}.map-empty{min-width:500px;padding:60px;border:1px dashed #363941;border-radius:16px;color:var(--muted);text-align:center}

/* Editors, search, and authentication */
#overlay[hidden]{display:none}#overlay{position:fixed;inset:0;z-index:100}.scrim{position:absolute;inset:0;background:rgba(3,3,4,.72);backdrop-filter:blur(7px)}.dialog{position:absolute;top:50%;left:50%;width:min(620px,calc(100vw - 30px));max-height:min(88dvh,850px);overflow:auto;transform:translate(-50%,-50%);border:1px solid #34363d;border-radius:20px;background:#15161a;box-shadow:0 28px 90px rgba(0,0,0,.55)}.dialog-close{position:sticky;float:right;top:14px;right:14px;z-index:3;width:36px;height:36px;margin:14px;border:1px solid #343840;border-radius:10px;background:#20232a;color:#aeb0b7;font-size:22px}
.editor,.search-dialog,.move-dialog{padding:32px}.editor header h2,.search-dialog h2,.move-dialog h2{font-family:Fraunces,serif;font-size:32px;margin:6px 0 26px}.editor>label,.editor .two label,.auth label{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;color:#92949c;font-size:10px;text-transform:uppercase;letter-spacing:.11em;font-weight:700}.editor input,.editor textarea,.editor select,.search-dialog input,.auth input{width:100%;min-height:48px;padding:13px;border:1px solid #343842;border-radius:11px;background:#1a1c21;color:var(--text);font-size:14px;text-transform:none;letter-spacing:0;outline:0}.editor textarea{resize:vertical;line-height:1.5}.editor input:focus,.editor textarea:focus,.editor select:focus,.search-dialog input:focus,.auth input:focus{border-color:#8c646b;box-shadow:0 0 0 3px rgba(75,30,35,.35)}.editor .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor fieldset{margin:0 0 18px;padding:14px;border:1px solid #30343b;border-radius:12px}.editor legend{padding:0 7px;color:var(--muted);font-size:10px;text-transform:uppercase}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.days label input{position:absolute;opacity:0}.days span{display:grid;place-items:center;min-height:44px;border:1px solid #353941;border-radius:9px;color:var(--muted)}.days input:focus-visible+span{outline:2px solid #b98d94;outline-offset:2px}.days input:checked+span{background:#4b1e23;border-color:#80545c;color:#f1e4e5}.editor footer{display:flex;justify-content:flex-end;gap:8px;margin-top:24px}.editor footer .danger{margin-right:auto}
.pattern-picker{padding:0!important;border:0!important}.pattern-picker>legend{padding:0 0 8px!important;color:#92949c!important;font-size:10px!important;font-weight:700;letter-spacing:.11em}.pattern-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pattern-options button{position:relative;min-height:68px;padding:13px 42px 13px 14px;border:1px solid #343842;border-radius:12px;background:#1a1c21;color:var(--muted);text-align:left;transition:border-color .18s ease,background .18s ease,color .18s ease}.pattern-options button:hover{border-color:#665159;background:#201b1e;color:var(--text)}.pattern-options button:focus-visible{outline:2px solid #c39da3;outline-offset:2px}.pattern-options button strong,.pattern-options button small{display:block}.pattern-options button strong{font-size:14px}.pattern-options button small{margin-top:4px;color:inherit;font-size:11px;font-weight:400}.pattern-options button[aria-pressed="true"]{border-color:#91646c;background:#2b1b1f;color:#f3e8e9;box-shadow:inset 0 0 0 1px #624148}.pattern-options button[aria-pressed="true"]:after{content:'Selected';position:absolute;top:10px;right:10px;color:#d6b6bb;font-size:8px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.pattern-picker .field-help{display:block;margin:8px 2px 0}.recurrence-fields[hidden]{display:none}.field-help{color:var(--soft);font-size:11px;line-height:1.4;text-transform:none;letter-spacing:0;font-weight:400}.form-error{margin:-4px 0 16px;padding:10px 12px;border:1px solid #65343b;border-radius:9px;background:#2d191d;color:#f0b6bd;font-size:12px}.form-error[hidden]{display:none}
.search-dialog #results,.move-dialog{display:flex;flex-direction:column;gap:7px}.search-dialog #results{margin-top:12px}.search-dialog #results button,.move-dialog>button{display:flex;justify-content:space-between;width:100%;padding:13px;border:1px solid #30343b;border-radius:10px;background:#1b1d22;color:var(--text);text-align:left}.search-dialog #results small{color:var(--muted);text-transform:capitalize}#toast{position:fixed;left:50%;bottom:28px;z-index:150;transform:translate(-50%,30px);opacity:0;padding:11px 16px;border:1px solid #745058;border-radius:10px;background:#2b1b1f;color:#f0dfe1;transition:.2s ease;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%,0)}.mobile-nav{display:none}
.auth{min-height:100dvh;display:grid;grid-template-columns:1.1fr .9fr;background:#0d0d0e}.auth>section{display:flex;flex-direction:column;justify-content:center;padding:8vw;background:radial-gradient(circle at 15% 20%,rgba(75,30,35,.36),transparent 42%)}.auth h1{font-family:Fraunces,serif;font-size:clamp(55px,7vw,92px);line-height:.95;letter-spacing:-.055em;margin:15px 0 24px}.auth>section p{max-width:520px;color:var(--muted);font-size:18px}.auth ul{padding-left:18px;color:#b9b6b2;line-height:2}.auth form{align-self:center;width:min(430px,calc(100% - 50px));padding:35px;border:1px solid #33363d;border-radius:20px;background:#15161a}.auth form .mark{margin-bottom:24px}.auth form h2{font-family:Fraunces,serif;font-size:35px;margin:0}.auth form p{color:var(--muted)}.auth form .primary{width:100%;margin-top:7px}.text-button{width:100%;padding:14px;border:0;background:transparent;color:#b98e95}#auth-error{min-height:24px;color:#dc7782;font-size:12px}

/* Tablet and phone */
@media(max-width:1100px){:root{--sidebar:78px}.sidebar{width:78px}.brand b,.sidebar nav span,.sidebar footer{display:none}.sidebar nav button{justify-content:center}.collapse{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-heading{grid-template-columns:1fr}.map-heading>div:first-child{display:none}.focus-strip{max-width:none}.map-page{padding:12px}.map-workspace{grid-template-columns:164px 1fr}.board{grid-template-columns:repeat(5,240px)}}
@media(max-width:720px){html,body,#root{height:100%;overflow:hidden}.app{height:100dvh;padding:0}.sidebar,.topbar{display:none}.content{height:calc(100dvh - 70px);overflow-y:auto;padding:20px 14px 100px}.content.map-content{height:calc(100dvh - 70px);padding:0;overflow:hidden}.mobile-nav{position:fixed;inset:auto 0 0;z-index:40;height:70px;padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #292b31;background:rgba(15,16,19,.96);backdrop-filter:blur(15px)}.mobile-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;background:transparent;color:#767983;font-size:9px}.mobile-nav button.active{color:#d2b6ba;background:linear-gradient(180deg,rgba(75,30,35,.48),transparent)}.mobile-nav svg{width:19px;height:19px}.page-head{align-items:flex-start;margin:3px 0 24px}.page-head h1,.project-page h1{font-size:42px}.page-head .primary{position:fixed;right:14px;bottom:83px;z-index:30;width:54px;height:54px;padding:0;border-radius:17px;font-size:0}.page-head .primary:after{content:'+';font-size:27px}.day-open{min-height:320px;padding:25px}.project-grid{grid-template-columns:1fr}.project-card{min-height:175px}.settings-grid{grid-template-columns:1fr}.calendar-page .page-head{display:block}.calendar-actions{margin-top:16px;justify-content:space-between}.calendar-grid{overflow-x:auto;grid-template-columns:repeat(7,minmax(76px,1fr))}.calendar-day{min-height:105px;padding:7px}.map-page{height:100%;padding:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:0}.map-heading{display:block;padding:12px;border-bottom:1px solid #292b30}.focus-strip{grid-template-columns:repeat(3,minmax(0,1fr));padding:4px}.focus-strip label{padding:5px;font-size:7px}.focus-strip input{font-size:10px}.map-workspace{display:block;border:0;border-radius:0}.map-tools{position:absolute;left:10px;right:10px;bottom:80px;z-index:12;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:8px;border:1px solid #343740;border-radius:14px;background:rgba(18,19,23,.95);box-shadow:0 15px 35px rgba(0,0,0,.45)}.map-tools h2,.map-tools>p,.map-tools hr,.map-search{display:none}.map-tools>button{width:100%;min-height:50px;margin:0;font-size:7px}.map-tools>button i{width:17px;height:17px;margin-bottom:3px}.map-canvas{height:100%}.map-toolbar{height:43px;overflow-x:auto}.map-toolbar button{white-space:nowrap;padding:0 7px}.map-world{padding:42px 30px 180px;gap:55px}.map-node{width:168px}.map-node.task,.map-node.repeat,.map-node.habit{width:150px}.node-open{min-height:96px}.orphan-zone{min-width:350px;margin-top:180px}.dialog{top:auto;bottom:0;left:0;width:100%;max-height:90dvh;transform:none;border-radius:20px 20px 0 0}.editor,.search-dialog,.move-dialog{padding:25px 18px calc(25px + env(safe-area-inset-bottom))}.editor .two{grid-template-columns:1fr}.editor footer{position:sticky;bottom:-25px;margin:22px -18px -25px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));background:#15161a;border-top:1px solid #2d3037}.dialog-close{top:10px}.auth{display:block;overflow:auto}.auth>section{min-height:45dvh;padding:45px 25px}.auth h1{font-size:54px}.auth form{margin:25px auto 50px}.board{grid-template-columns:repeat(5,82vw)}.project-page header{align-items:flex-start}.project-page header .primary{white-space:nowrap}}
@media(max-width:420px){.pattern-options{grid-template-columns:1fr}.pattern-options button{min-height:64px}}

/* Personal planning refinements */
.task-schedule[hidden]{display:none}.recurrence-fields>label small{color:var(--soft);font-size:9px;font-weight:500;text-transform:none;letter-spacing:0}.personal-board{grid-template-columns:repeat(3,minmax(240px,1fr))}.calendar-day.selected{position:relative;z-index:1;background:#21191c;box-shadow:inset 0 0 0 2px #9a7077}.calendar-day.selected b{color:#f5e6e8}.calendar-agenda{margin-top:20px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#121317}.calendar-agenda>header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}.calendar-agenda h2{margin:4px 0 0;font-size:24px}.calendar-agenda>header>b{color:var(--muted);font-size:12px;font-weight:600}
@media(max-width:720px){.personal-board{grid-template-columns:repeat(3,82vw)}.calendar-agenda{margin-top:14px;padding:14px}.calendar-agenda>header{align-items:flex-start}.calendar-agenda h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
