*{box-sizing:border-box;margin:0;padding:0}html{min-height:100%;color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{font:14px/1.5 Onest,system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:radial-gradient(circle at 18% -12%,var(--glow),transparent 38%),var(--bg);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--deep)}:focus-visible{outline:3px solid #ac8cff;outline-offset:3px}button{border:1px solid var(--line2);background:var(--card);border-radius:11px;padding:11px 15px;min-height:42px;font-size:13px;font-weight:650}button:hover{background:var(--light2)}.primary{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 4px 13px color-mix(in srgb,var(--purple) 16%,transparent)}.primary:hover{background:var(--deep);color:#fff}.quiet{background:transparent}.shell{max-width:1180px;margin:auto;padding:24px 32px 115px}header{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:28px}.brand{display:flex;align-items:center;gap:18px;text-decoration:none}.brand img{width:152px;height:auto;display:block}.brand span{border-left:1px solid var(--line2);padding-left:18px;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.brand .lg-d{display:none}[data-theme=dark] .brand .lg-l{display:none}[data-theme=dark] .brand .lg-d{display:block}#connection{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap}#connection:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:7px}#logout{font-size:11px;min-height:32px;padding:5px 10px}.theme{min-width:38px;padding:7px;font-size:17px}h1{font-size:clamp(28px,4vw,38px);font-weight:750;letter-spacing:-1.2px;line-height:1.2;margin:7px 0 8px}h2{font-size:14px;font-weight:750;margin:25px 0 12px}.eyebrow{font-size:10px;letter-spacing:.13em;font-weight:800;text-transform:uppercase;color:var(--purple)}.intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.intro p{max-width:530px;color:var(--muted);font-size:13px;line-height:1.6}.add-actions{display:flex;gap:8px;flex-shrink:0}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px}.stat{padding:20px 22px;border:1px solid var(--line);background:var(--card);border-radius:17px;box-shadow:var(--shadow)}.stat strong{display:block;font-size:31px;font-weight:750;letter-spacing:-1px;margin-bottom:2px}.stat span{font-size:11px;color:var(--muted)}.stat:first-child{background:var(--hero);border-color:var(--line2)}.stat.warn strong{color:var(--amber)}.list{display:flex;flex-direction:column;gap:10px}.task{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px solid var(--line);background:var(--card);border-radius:15px;box-shadow:var(--shadow);min-width:0}.task.overdue{border-left:3px solid var(--amber)}.check{padding:0;width:24px;height:24px;min-height:24px;border-radius:8px;flex:none;border:1.5px solid var(--line2);color:var(--purple);background:var(--card)}.task.done .check{background:var(--light);border-color:var(--purple)}.task.done .title{color:var(--muted);text-decoration:line-through}.task-open{text-align:left;flex:1;min-width:0;padding:0;border:0;border-radius:0;background:transparent;min-height:0;box-shadow:none}.task-open:hover{background:transparent}.title{font-size:14px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}.meta,.direction,.description,.result{font-size:11px;font-weight:400;line-height:1.6;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}.description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-height:3.2em}.direction{color:var(--dim);font-size:10px;line-height:1.4}.result{color:var(--green)}.pill{display:inline-block;padding:2px 7px;background:var(--light);color:var(--deep);border-radius:6px;margin-right:5px;font-size:10px;font-weight:650}.pill.alert{background:var(--amber-bg);color:var(--amber)}.pill.work{background:var(--soft);color:var(--muted)}.plan{flex:none;white-space:nowrap;font-size:11px;min-height:32px;padding:5px 10px;box-shadow:none}.plan.selected{background:var(--light);color:var(--deep);border-color:var(--line2)}.toolbar{display:grid;grid-template-columns:minmax(150px,1fr) 180px 145px;gap:9px;margin:22px 0}.empty{border:1px dashed var(--line2);background:var(--card2);border-radius:16px;padding:30px 20px;text-align:center;font-size:13px;color:var(--muted);line-height:1.75}.empty strong{display:block;color:var(--ink);font-size:16px;font-weight:700;margin-bottom:5px}nav{position:fixed;bottom:max(18px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:6px;box-shadow:0 10px 35px color-mix(in srgb,var(--deep) 12%,transparent);z-index:5}nav button{min-width:105px;border:0;background:transparent;font-size:12px;color:var(--muted);padding:12px 16px}nav button.active{background:var(--light);color:var(--deep)}dialog{background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:20px;width:min(650px,calc(100vw - 24px));max-height:91dvh;padding:26px;box-shadow:0 25px 90px #20184924}dialog::backdrop{background:#17123365;backdrop-filter:blur(4px)}dialog h2{font-size:24px;letter-spacing:-.6px;margin:0 0 23px}label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:650;color:var(--ink2);margin-bottom:15px}input,textarea,select{min-width:0;width:100%;min-height:43px;border:1px solid var(--line2);border-radius:10px;background:var(--card2);color:var(--ink);padding:10px 12px;font-size:13px;font-weight:450}input::placeholder,textarea::placeholder{color:var(--dim)}textarea{resize:vertical;min-height:72px;line-height:1.6}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:flex;gap:9px;justify-content:flex-end;margin-top:22px}.hint{font-size:11px;color:var(--muted);font-weight:450;line-height:1.7;margin:0 0 15px}.error{min-height:15px;font-size:12px;color:var(--red);line-height:1.6}.history{border-top:1px solid var(--line);margin-top:22px;padding-top:14px;font-size:12px;color:var(--ink2)}.history p{padding:9px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.7;overflow-wrap:anywhere}.history summary{cursor:pointer;font-weight:650}.login{max-width:520px;margin:65px auto;padding:32px;border:1px solid var(--line);border-radius:20px;background:var(--hero);box-shadow:var(--shadow)}.login h1{margin-top:12px}.login p{color:var(--muted);line-height:1.75;margin:15px 0 20px}.login a{display:inline-block;margin:12px 0}#toast{position:fixed;left:50%;bottom:105px;transform:translateX(-50%);max-width:calc(100vw - 28px);background:var(--ink);color:var(--card);border-radius:12px;padding:13px 19px;z-index:20;font-size:12px;box-shadow:var(--shadow)}.calendar-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}.calendar-card{border:1px solid var(--line);border-radius:18px;padding:18px;background:var(--card);box-shadow:var(--shadow)}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:18px}.calendar-head b{font-size:13px;text-transform:capitalize}.calendar-head button{padding:2px 9px;min-height:30px;font-size:22px;border:0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-grid button{min-height:40px;padding:5px 2px;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font-size:12px;background:transparent}.calendar-grid button small{font-size:8px;background:var(--light);color:var(--deep);border-radius:4px;padding:0 4px;line-height:1.3}.calendar-grid button.is-today{border-color:var(--line2);color:var(--purple)}.calendar-grid button.selected{background:var(--purple);color:#fff}.weekdays{margin-bottom:7px;color:var(--dim);font-size:10px;text-align:center}.calendar-picker{margin:18px 0 0}.day-heading{display:flex;align-items:center;justify-content:space-between}.day-heading h2{font-size:20px;margin:0}.day-heading button{font-size:11px;min-height:34px}.calendar-detail>.empty{margin-top:20px}[hidden]{display:none!important}[data-embedded=true] .shell{max-width:none;padding:23px 24px 28px;display:flex;flex-direction:column}[data-embedded=true] header{display:none}[data-embedded=true] nav{position:static;transform:none;order:0;align-self:flex-start;margin-bottom:24px;box-shadow:none;padding:4px;border-radius:12px;background:var(--card2)}[data-embedded=true] main{order:1}[data-embedded=true] nav button{min-width:0;padding:9px 18px;min-height:36px}[data-embedded=true] .calendar-layout{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}
@media(max-width:760px){.calendar-layout,[data-embedded=true] .calendar-layout{grid-template-columns:1fr}.calendar-card{max-width:440px;width:100%}.calendar-detail{min-width:0}.toolbar{grid-template-columns:1fr 1fr}.toolbar input{grid-column:1/-1}.intro{align-items:flex-start;gap:12px}.add-actions{flex-direction:column}.add-actions button{font-size:12px;padding:9px 12px}.calendar-detail .task{align-items:flex-start}.calendar-detail .plan{align-self:center}}
@media(max-width:480px){.shell{padding:20px 16px 112px;padding-top:calc(20px + var(--tg-content-safe-area-inset-top,0px))}header{gap:8px;padding-bottom:18px;margin-bottom:24px;flex-wrap:wrap}.brand{gap:10px}.brand img{width:117px}.brand span{font-size:9px;padding-left:10px}#connection{font-size:9px}#connection:before{display:none}#logout{font-size:10px;padding:4px 7px}.theme{min-width:30px;font-size:15px;padding:4px}h1{font-size:29px}.intro p{font-size:12px}.intro .eyebrow{font-size:9px;max-width:220px}.summary{gap:8px;margin-bottom:23px}.stat{padding:14px}.stat strong{font-size:26px}.stat span{font-size:10px}.task{padding:14px 12px;gap:10px;align-items:flex-start}.check{margin-top:1px;width:21px;height:21px;min-height:21px;border-radius:7px}.title{font-size:13px}.plan{font-size:10px;padding:5px 7px;margin-top:1px}.direction{font-size:9px}.description{font-size:10px}.meta{font-size:10px}nav{width:calc(100% - 24px);justify-content:space-around;bottom:max(12px,env(safe-area-inset-bottom))}nav button{min-width:0;flex:1;font-size:11px;padding:11px 7px}dialog{padding:20px}.row{gap:9px}.login{margin:25px auto;padding:23px}.calendar-layout{gap:24px}.calendar-card{padding:15px}.calendar-grid button{min-height:41px}[data-embedded=true] .shell{padding:16px 13px 28px}[data-embedded=true] nav{width:100%;align-self:stretch;margin-bottom:22px}[data-embedded=true] nav button{padding:9px 6px;font-size:10px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .13s,border-color .13s}.task{animation:appear .15s ease-out}@keyframes appear{from{opacity:.7;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}}
/* Keep the native modal centered inside the dashboard frame. */
dialog{position:fixed;inset:0;margin:auto}
@media(max-width:480px){header .theme{margin-left:auto}#connection{order:5;flex-basis:100%;margin-left:0;font-size:9px}#connection:before{display:inline-block}}
.pill.status-done{background:var(--green-bg);color:var(--green)}
.pill.status-waiting{background:var(--amber-bg);color:var(--amber)}
.pill.status-cancelled{background:var(--soft);color:var(--muted)}
.summary-note{padding:12px 15px;border:1px solid var(--line);border-radius:12px;background:var(--card2)}
/* Daily schedule and explicit completed archive. */
.summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.task.done .check,.check.completed-pending{background:var(--green-bg);border-color:var(--green);color:var(--green)}
.check[disabled]{cursor:wait}.nav-count{font-size:9px;opacity:.7}
.day-badge{flex:none;border-radius:8px;padding:5px 8px;color:var(--deep);background:var(--light);font-size:10px;font-weight:650;align-self:center}
.source-note{padding:15px 17px;background:var(--card2);border:1px solid var(--line);border-radius:14px;margin:0 0 15px;color:var(--ink2);font-size:12px}.source-note p{margin-top:5px;color:var(--muted);line-height:1.65;font-size:11px}
.subtabs{display:flex;gap:5px;margin:15px 0 0;flex-wrap:wrap}.subtabs button{font-size:11px;min-height:32px;padding:6px 12px;background:transparent}.subtabs button.selected{background:var(--light);color:var(--deep);border-color:var(--line2)}
.text-action{border:0;box-shadow:none;padding:0 3px;min-height:24px;font-size:11px;color:var(--deep);background:transparent;text-decoration:underline}
#toast{display:flex;gap:12px;align-items:center;justify-content:space-between}#toast button{padding:6px 10px;min-height:30px;border-color:color-mix(in srgb,var(--card) 35%,transparent);color:var(--card);background:transparent;font-size:11px}
@media(max-width:600px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.day-badge{font-size:9px;padding:4px 6px}}
@media(max-width:480px){nav{gap:2px;padding:5px}nav button{font-size:10px;padding:10px 4px}[data-embedded=true] nav button{padding:9px 4px}#toast{width:calc(100vw - 28px);font-size:11px}}

/* Choosing an action never changes a task until a button is pressed. */
#task-actions{width:min(430px,calc(100vw - 28px));max-height:calc(100dvh - 32px);padding:0}
.action-sheet{padding:22px}.action-sheet h2{margin-top:0}.action-sheet #action-title{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.action-options{display:grid;gap:9px;margin:18px 0}.action-options button{display:block;text-align:left;padding:12px 14px;min-height:58px;background:var(--card2);font-size:14px}.action-options button small{display:block;color:var(--muted);font-size:11px;font-weight:400;line-height:1.5;margin:4px 0 0}
.action-options button[data-action=done]{color:var(--green)}.action-options button[data-action=overdue],.pill.status-overdue{color:var(--amber)}
#cancel-action{width:100%}
.card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:1;background:var(--card);padding:4px 0 10px;margin-bottom:13px}
.card-heading h2{margin:0;min-width:0}.card-heading button{flex:none;width:36px;height:36px;min-height:36px;padding:0;border:0;font-size:25px;line-height:1;color:var(--muted)}

/* Open, completed and archived records have separate destinations. */
.summary{grid-template-columns:repeat(5,minmax(0,1fr))}
.stat-link{text-align:left;min-width:0;cursor:pointer}.stat-link:hover{border-color:var(--purple)}
.action-sheet{position:relative}.action-sheet h2{padding-right:36px}
.action-close{position:absolute;right:10px;top:10px;width:36px;height:36px;min-height:36px;padding:0;font-size:25px;line-height:1;border:0;color:var(--muted)}
@media(max-width:760px){.summary{grid-template-columns:repeat(2,minmax(0,1fr))}.summary .stat-link{grid-column:1 / -1}}
@media(max-width:600px){nav,[data-embedded=true] nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}nav button,[data-embedded=true] nav button{min-width:0;padding:8px 3px;min-height:34px;font-size:10px}.shell{padding-bottom:130px}}

/* Team permissions use the existing Fixer controls and palette. */
.actions{flex-wrap:wrap}
.flag{flex-direction:row;align-items:center;gap:9px}.flag input{width:18px;min-height:18px;flex:none}.permission-flags{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.source-note h2{margin:10px 0}.invite-result{overflow-wrap:anywhere;margin-top:12px}select[multiple]{min-height:100px}button:disabled{opacity:.55;cursor:default}input:disabled,select:disabled,textarea:disabled{opacity:.75}.pill.status-assigned{background:var(--blue-bg);color:var(--blue)}
@media(max-width:600px){.permission-flags{grid-template-columns:1fr}#users{font-size:10px;min-height:32px;padding:5px 9px}}
