:root{--ink: #14171a;--paper: #f3f2ef;--card: #fff;--line: #e2e0db;--rule: #756650;--danger: #c41e28;--hivis: #ffb000;--muted: #63686e;--done: #1f6b45;--shell: #0e1114;--f: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;margin:0;height:100%}body{background:var(--shell);font-family:var(--f);color:var(--ink);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}#root{max-width:440px;margin:0 auto;min-height:100%;background:var(--paper);box-shadow:0 0 0 1px #00000080;overflow-x:clip}.apphead{position:sticky;top:0;z-index:20;background:var(--ink);color:#fff}.apphead-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:8px;height:60px;padding:0 14px 0 6px}.apphead-rule{height:2px;background:var(--rule)}.apphead-lead{display:flex;align-items:center;justify-content:center;width:44px;height:44px}.apphead-back{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;background:none;color:#cfd3d8;padding:0}.apphead-back:active{color:#fff}.apphead-mark{display:block;width:28px;height:28px;border-radius:4px;background:#fff}.apphead-text{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}.apphead-title{font-size:15.5px;font-weight:700;letter-spacing:-.015em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.apphead-sub{font-size:11.5px;color:#9ba1a8;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:14px}.apphead-right{display:flex;align-items:center;gap:12px;flex:none}.headaction{font:inherit;font-size:12.5px;font-weight:700;color:var(--hivis);background:none;border:0;padding:10px 0;min-height:44px;white-space:nowrap}.headundo{display:flex;align-items:center;gap:2px}.undoaction{padding:2px 6px;font-size:20px;line-height:1}.undoaction:disabled{opacity:.35}.headshare{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.headshare-state{font-size:10px;color:#9ba1a8;white-space:nowrap}.shareaction[data-pending=true]{color:var(--hivis)}.shareaction[data-pending=false]{color:#cfd3d8}.apphead-demo{color:var(--hivis);font-weight:700}.apphead-unsent{font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:#3a2900;background:var(--hivis);border-radius:2px;padding:3px 6px;white-space:nowrap}.apphead-net{display:flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#5f666d;flex:none}.apphead-net.off{color:var(--hivis)}.apphead-dot{width:7px;height:7px;border-radius:4px;background:currentColor}.apphead-netlabel{display:none}.apphead-net.off .apphead-netlabel{display:inline}main{padding:12px 12px 116px}.card{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:12px;margin-bottom:9px}.card h2{margin:0 0 6px;font-size:16px;letter-spacing:-.015em}.card h3{margin:0 0 12px;font-size:13px;letter-spacing:.02em;color:var(--ink)}.card.done{border-left:3px solid var(--done)}.filename{margin:0 0 10px;font-size:13px;font-weight:600;line-height:1.45;word-break:break-word;padding:9px 10px;background:#f7f6f3;border:1px solid var(--line);border-radius:2px}.cardhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 12px}.cardhead h3{margin:0}.jobaddress{margin:0 0 12px;font-size:13px;color:#4b5057;line-height:1.45}.lab{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 6px}.flab{display:block;font-size:12.5px;font-weight:600;color:#4b5057;margin:0 0 5px;letter-spacing:0;text-transform:none}.flab .hint{font-weight:400;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:11.5px}.sub{font-size:12.5px;color:#585d63;margin:0;line-height:1.5}label.field,.field{display:block;margin-bottom:12px}.field:last-child{margin-bottom:0}input[type=text],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=number],input[type=date],textarea,select{width:100%;font:inherit;font-size:16px;min-height:46px;padding:11px;border:1px solid var(--line);border-radius:2px;background:#fff;color:var(--ink);transition:border-color .12s ease,background-color .12s ease}textarea{min-height:74px;resize:vertical}input:placeholder-shown,textarea:placeholder-shown{background:#f7f6f2}input::placeholder,textarea::placeholder{color:#9a9b97}.repairform input::placeholder,.repairform textarea::placeholder{font-style:italic}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:#c7c5be}input:focus,textarea:focus,select:focus{background:#fff;border-color:var(--ink);outline:2px solid var(--hivis);outline-offset:-1px}input:disabled::placeholder,textarea:disabled::placeholder{color:transparent}input:disabled,textarea:disabled,select:disabled{background:#efeeea;color:#6b6f74;-webkit-text-fill-color:#6b6f74;border-style:dashed;opacity:1}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--hivis);outline-offset:2px}.chips{display:flex;flex-wrap:wrap;gap:6px}.segmented{display:flex;gap:0;border:1px solid var(--line);border-radius:2px;overflow:hidden}.segmented .chip{flex:1;border:0;border-right:1px solid var(--line);border-radius:0;text-align:center}.segmented .chip:last-child{border-right:0}.chip{font:inherit;font-size:13px;padding:9px 12px;min-height:44px;border:1px solid var(--line);background:#fcfcfb;border-radius:2px;color:var(--ink)}.chip[data-on=true]{background:var(--ink);color:#fff;border-color:var(--ink)}button.big{width:100%;font:inherit;font-size:15px;font-weight:700;min-height:52px;border:0;border-radius:2px;background:var(--ink);color:#fff}button.big:disabled{background:#b9bcc0}button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}button.danger{background:var(--danger);color:#fff}.linkbtn{font:inherit;font-size:12.5px;background:none;border:0;color:var(--rule);padding:8px 4px;min-height:44px}.linkbtn.quiet{color:var(--ink);font-weight:600}.row{display:flex;gap:10px}.row>*{flex:1}.joblink{display:block;width:100%;text-align:left;font:inherit;border:1px solid var(--line);border-left:3px solid var(--line);background:var(--card);border-radius:3px;padding:11px 12px;margin-bottom:8px;color:var(--ink);min-height:44px}.joblink[data-state=started]{border-left-color:var(--hivis)}.joblink[data-state=signed]{border-left-color:var(--done)}.joblink:active{background:#f7f6f3}.jobsite{display:block;font-size:15px;font-weight:700;letter-spacing:-.015em;line-height:1.3}.jobclient{display:block;font-size:12.5px;color:#4b5057;line-height:1.45}.joblink .meta{display:block;font-size:11.5px;color:var(--muted);line-height:1.45}.joblink .jobnote{margin-top:5px;font-style:italic}.joblink .pillrow .meta{display:inline}.joblink .pillrow{margin-top:8px}.pill{display:inline-block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:3px 7px;border-radius:2px;border:1px solid;white-space:nowrap}.pill.done{color:var(--done);border-color:#bfd8cb;background:#f1f7f3}.pill.open{color:#7d5800;border-color:#ebd7a6;background:#fdf6e6}.pill.count{color:var(--ink);border-color:var(--line);background:#fcfcfb}.pillrow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:5px 0 0}.item{border:1px solid var(--line);background:var(--card);border-radius:3px;padding:12px;margin-bottom:9px}.item h3{margin:0;font-size:13.5px;line-height:1.35}.item .meta{font-size:11.5px;color:var(--muted);line-height:1.5}.item .notes{margin:7px 0 0;font-size:12px;color:#4b5057;line-height:1.5}.item .actions{display:flex;gap:4px;margin-top:4px;margin-left:-4px}.status-done{color:var(--done);font-weight:700}.shots{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.shot{width:68px;height:68px;object-fit:cover;border:1px solid var(--line);border-radius:2px}.shotwrap{position:relative;display:inline-block;line-height:0}.shotdel{position:absolute;top:-6px;right:-6px;width:24px;height:24px;border-radius:12px;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px;line-height:1;padding:0}.addshot{width:68px;height:68px;border:1px dashed #c6c3bd;border-radius:2px;background:#fcfcfb;color:var(--muted);font:inherit;font-size:22px}.filerow{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.filerow:first-of-type{border-top:0}.filetype{flex:none;font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--muted);background:#f4f3f0;border:1px solid var(--line);border-radius:2px;padding:6px 5px;min-width:38px;text-align:center}.filename-btn{flex:1;min-width:0;font:inherit;text-align:left;background:none;border:0;padding:4px 0;color:var(--ink)}.filerow-name{display:block;font-size:13px;line-height:1.35;word-break:break-word}.filerow-size{display:block;font-size:11px;color:var(--muted);margin-top:1px}.file-people{display:flex;gap:7px;overflow-x:auto;padding:1px 0 10px;scrollbar-width:thin}.file-people button{flex:0 0 42px;width:42px;height:42px;border:1px solid var(--line);border-radius:21px;background:var(--card);color:var(--ink);font:inherit;font-size:11px;font-weight:800}.file-people button[data-on=true]{border:3px solid var(--ink)}.file-people button[data-active=false]{opacity:.55}.file-modes{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin:0 0 12px}.file-modes button{min-height:42px;border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);font:inherit;font-size:12px;font-weight:700}.file-modes button[data-on=true]{border-bottom-color:var(--ink);color:var(--ink)}.file-modes button span{display:inline-block;min-width:20px;margin-left:4px;padding:1px 5px;border-radius:2px;background:#e8e6e1;font-size:10px}.camera-day{margin:0 -12px 14px}.camera-day .lab{margin:0;padding:0 12px 7px}.camera-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:2px}.camera-shot{display:grid;place-items:center;width:100%;aspect-ratio:1;min-width:0;padding:0;border:0;background:#dad8d3;color:var(--muted);font:inherit;font-size:10px;overflow:hidden}.camera-shot img{width:100%;height:100%;object-fit:cover}.file-more{margin:4px 0 12px}.file-free{display:block;margin:10px 0 4px}.file-sheets{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 -12px;padding:0 12px}.file-actions{display:flex;flex-direction:column;align-items:flex-end}.file-actions .linkbtn{min-height:30px;padding:3px 4px}.headaction.quiet{color:#cfd3d8;font-weight:600}.sigwrap{position:relative;border:1px solid var(--line);border-radius:2px;background:#fcfcfb}.sigwrap:before{content:"";position:absolute;left:18px;right:18px;top:152px;border-top:1px dashed #c9c5bd}.sigwrap:after{content:"×";position:absolute;left:18px;top:128px;font-size:15px;color:#b8b3aa}.sigpad{display:block;width:100%;height:210px;touch-action:none;position:relative}.sigbar{display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-top:1px solid var(--line)}.barhint{font-size:11.5px;color:var(--muted);margin:0 0 8px;text-align:center}.sheetline{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.sheetline:first-of-type{border-top:0;padding-top:2px}.sheetline-no{flex:none;width:20px;font-size:12px;font-weight:700;color:var(--muted);line-height:1.5}.sheetline-text{flex:1;min-width:0}.sheetline-where{display:block;font-size:13px;font-weight:600;line-height:1.35}.sheetline .meta{display:block;font-size:11.5px;color:var(--muted);line-height:1.45}.linkrow{display:flex;gap:10px;margin-top:14px;padding-top:4px;border-top:1px solid var(--line)}.linkrow>*{flex:1;text-align:center}.tabs{position:fixed;left:0;right:0;bottom:0;max-width:440px;margin:0 auto;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:15}.tab{flex:1;font:inherit;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;min-height:56px;border:0;border-top:2px solid transparent;background:none;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px}.tab[data-on=true]{color:var(--ink);border-top-color:var(--rule)}.tab-flag{font-size:9px;letter-spacing:.08em;font-weight:700;color:#7d5800;background:#fdf6e6;border:1px solid #ebd7a6;border-radius:2px;padding:1px 4px}main.hastabs{padding-bottom:84px}.weeknav{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.weeklabel{font-size:12.5px;font-weight:700;color:var(--ink)}.weekstep{font:inherit;font-size:20px;line-height:1;width:44px;height:44px;border:0;background:none;color:var(--muted)}.weekstrip{display:flex;gap:4px;margin-bottom:14px}.weekday{flex:1;min-width:0;font:inherit;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0 8px;border:1px solid var(--line);border-radius:3px;background:var(--card);color:var(--ink)}.weekday[data-today=true] .weekday-num{color:var(--rule)}.weekday[data-on=true]{background:var(--ink);border-color:var(--ink)}.weekday[data-on=true] .weekday-name,.weekday[data-on=true] .weekday-num{color:#fff}.weekday-undated{flex:0 0 40px;border-style:dashed}.weekday-nodate{line-height:20px}.weekday-name{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--muted)}.weekday-num{font-size:14px;font-weight:700;color:var(--ink);line-height:1.1}.weekday-tally{font-size:10px;font-weight:700;line-height:1;min-width:17px;padding:2px 0;border-radius:8px;background:var(--hivis);color:#3a2900}.weekday-tally.done{background:#d8ecdf;color:var(--done)}.weekday-tally.empty{background:none;color:#c2beb6}.bar{position:fixed;left:0;right:0;bottom:0;max-width:440px;margin:0 auto;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#f3f2eff5;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.banner{border-left:2px solid var(--hivis);padding:8px 0 8px 10px;font-size:11.5px;color:var(--muted);line-height:1.5;margin-bottom:11px}.banner.locked{border-color:var(--done)}.banner.warn{border-color:var(--rule);color:var(--ink);font-weight:600}dialog{border:1px solid var(--line);border-radius:3px;padding:16px;max-width:320px;width:calc(100% - 40px);background:var(--card);color:var(--ink)}dialog::backdrop{background:#0e11148c}dialog p{margin:0 0 14px;font-size:13.5px;line-height:1.5}dialog .row{gap:8px}.updatebar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#232a30;color:#fff;font-size:12px;padding:8px 14px}.updatebar .linkbtn{color:var(--hivis);min-height:36px;padding:4px 6px}.updatebar-actions{display:flex;gap:4px;flex:none}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0b0d0f;display:flex;flex-direction:column}.viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 14px;color:#cfd3d8;font-size:12px}.viewer-close{font:inherit;font-size:26px;line-height:1;width:44px;height:44px;border:0;background:none;color:#fff}.viewer-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:0 8px;min-height:0}.viewer-stage img{max-width:100%;max-height:100%;object-fit:contain}.viewer-nav{display:flex;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom))}.viewer-nav .big{flex:1;color:#fff;border-color:#3a3f45}.viewer-nav .big:disabled{color:#6b7076;background:transparent}.viewer-loading{color:#cfd3d8;font-size:13px}.viewer-caption{display:grid;gap:3px;padding:8px 14px 0;color:#fff;font-size:12px}.viewer-caption span:last-child{color:#9ba1a8;font-size:10.5px}button.shotbtn{padding:0;border:0;background:none;line-height:0}.toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%);background:var(--ink);color:#fff;font-size:12.5px;padding:10px 14px;border-radius:2px;z-index:40;max-width:90vw}.initials{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 6px;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--ink);background:#f1efea;border:1px solid var(--line);border-radius:11px}.initials.big{min-width:40px;height:40px;border-radius:20px;font-size:13px;flex:none}.initials-row{display:inline-flex;flex-wrap:wrap;gap:4px}.teamrow{display:flex;align-items:center;gap:10px}.teamrow>span:nth-child(3){flex:1;min-width:0}.teamrow .meta{display:block;font-size:11.5px;color:var(--muted)}.team-switch{display:flex;gap:8px;margin:0 0 12px}.team-tab{flex:1;padding:10px;border:1px solid var(--rule);border-radius:4px;background:var(--card);font:inherit;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);cursor:pointer}.team-tab[data-on=true]{border-color:var(--ink);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.teamopen{flex:none;padding:7px 12px;border:1px solid var(--rule);border-radius:4px;background:var(--card);font:inherit;color:var(--ink);white-space:nowrap;cursor:pointer}.team-edit{margin-top:12px}.flab-group{margin:12px 0 4px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.team-edit-actions{display:flex;align-items:center;gap:14px;margin-top:12px}.weeklabel-wrap{display:flex;align-items:center;gap:8px}.weeknav-today{font:inherit;font-size:11px;font-weight:700;color:var(--rule);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:3px 8px;min-height:26px}.weekday[data-blocked=true]{background:repeating-linear-gradient(135deg,#f6f4f0 0,#f6f4f0 5px,#e8e5de 5px,#e8e5de 10px)}.weekday[data-on=true][data-blocked=true]{background:var(--ink)}.weekday-tally.off{background:none;color:var(--muted);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase}.dayblock{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 8px 9px 12px;margin-bottom:8px;border-radius:3px;border:1px solid var(--line);background:repeating-linear-gradient(135deg,#f8f6f2 0,#f8f6f2 6px,#eeebe4 6px,#eeebe4 12px);font-size:13px}.dayblock .meta{font-size:11.5px;color:var(--muted)}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 6px}.sectionhead .lab{margin:0}#nl-badge-frame{display:none!important}.teamnote{display:block;margin-top:3px;white-space:pre-wrap}.planner{overflow-x:auto;overflow-y:visible;margin:0 -12px 14px;padding:0;-webkit-overflow-scrolling:touch}.planner table{border-collapse:separate;border-spacing:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);width:max-content;min-width:100%;font-size:var(--pl-size, 12px);background:var(--card)}.planner[data-zoom=tight]{--pl-size: 10.5px;--pl-pad: 2px 5px}.planner th,.planner td{border-top:1px solid var(--line);border-right:1px solid var(--line);padding:var(--pl-pad, 4px 7px);text-align:left;vertical-align:top;font-weight:400}.planner td{min-width:110px;max-width:190px}.planner td.pl-text-cell{width:190px;min-width:190px;max-width:190px}.planner td.pl-client,.planner td.pl-site{width:114px;min-width:114px;max-width:114px}.planner th.pl-day{position:sticky;left:0;z-index:2;width:68px;min-width:68px;background:var(--card);white-space:nowrap}.pl-dayname{display:block;font-size:10px;letter-spacing:.06em;font-weight:700;color:var(--muted)}.pl-daydate{display:block;font-size:12px;font-weight:700}.planner td.pl-who,.planner th.pl-who{position:sticky;left:68px;z-index:2;width:44px;min-width:44px;background:var(--card);text-align:center;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:pointer}.pl-same{color:var(--line)}.pl-row[data-weekend=true] td,.pl-row[data-weekend=true] th{background:#eceae5}.pl-row[data-today=true] th.pl-day{background:var(--ink);color:#fff}.pl-row[data-today=true] th.pl-day .pl-dayname{color:#cfd3d8}.pl-row[data-daystart=true] td,.pl-row[data-daystart=true] th{border-top:3px solid var(--rule)}.pl-empty{color:#c9c6c0;cursor:pointer;font-weight:700}.plannerbar{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:0 0 6px}.pl-sub{display:block;color:var(--muted);font-size:11px}.pl-clip{margin-left:4px}.planner td.pl-state{width:46px;min-width:46px;text-align:center}.pl-sheet{width:22px;height:22px;border:1px solid rgba(0,0,0,.25);border-radius:3px;padding:0;cursor:pointer}.pl-sheet[data-state=new]{background:#d93b3b}.pl-sheet[data-state=started]{background:var(--hivis)}.pl-sheet[data-state=signed]{background:#2f8f4e}.pl-sheet-placeholder{display:inline-block;width:18px;height:18px;border-radius:2px;background:#c9c6c0;opacity:.45}.chip.swatch{width:34px;min-width:34px;height:30px}.chip.swatch[data-colour=amber]{background:#fdf1d8}.chip.swatch[data-colour=red]{background:#fbdedf}.chip.swatch[data-colour=green]{background:#dcefe2}.chip.swatch[data-colour=blue]{background:#dce7f6}.chip.swatch[data-colour=grey]{background:#e4e4e2}.chip.swatch[data-on=true]{outline:2px solid var(--ink);outline-offset:1px}body[data-wide=on] #root,body[data-wide=on] .tabs{max-width:1200px}@media(orientation:landscape){#root,.tabs,.bar,body[data-wide=on] #root,body[data-wide=on] .tabs{max-width:none}}.plannerbar .meta{font-size:11.5px;line-height:1.4}.plannerbar-actions{display:flex;align-items:center;gap:8px}.plannerbar-actions .linkbtn{padding:5px 10px;border:1px solid var(--line);border-radius:3px;background:var(--card);white-space:nowrap}.planner-undated{min-height:18px;margin:-2px -12px 0;padding:10px 12px 3px;border-top:4px solid var(--rule);background:#e9e7e1}.planner.planner-undated-grid{margin:0 -12px -3px}.planner-undated-grid th.pl-undated-day{background:#e9e7e1}.planner-undated-grid .pl-unassigned{width:28px;padding:0;border-style:dashed;background:transparent}.filename{word-break:break-word}.pl-box{display:block;min-height:16px;cursor:text;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.pl-longbox{display:block;min-height:16px;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.pl-longbox-text{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap;-webkit-box-orient:vertical;-webkit-line-clamp:2}.pl-longbox[data-expanded=true] .pl-longbox-text{display:block;overflow:visible}.pl-longbox-links{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-top:6px}.pl-notelink{max-width:100%;padding:2px 0;border:0;background:none;color:var(--link, #3a5bbf);font:inherit;text-align:left;text-decoration:underline;cursor:pointer;overflow-wrap:anywhere}.pl-placeholder{color:#c9c6c0;font-size:.9em;font-style:italic}.pl-shrink{display:inline-block;max-width:100%;overflow:hidden;white-space:nowrap;vertical-align:top}.pl-input{width:100%;min-height:0;padding:1px 3px;font-size:inherit;font-family:inherit;border:1px solid var(--ink);border-radius:2px;background:#fff}.pl-input.pl-longinput{min-height:62px;resize:vertical;line-height:1.35;overflow-wrap:anywhere;white-space:pre-wrap}.attachment-dialog{max-width:420px;max-height:calc(100% - 40px);overflow:auto}.attachment-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.attachment-dialog-head>span{display:grid;gap:3px}.attachment-dialog .card{border:0;padding:0;margin:0}.planner td.pl-colour{width:34px;min-width:34px;text-align:center}.pl-swatch{width:18px;height:18px;padding:0;border:1px solid var(--muted);border-radius:9px;background:transparent;cursor:pointer}.pl-swatch[data-colour]:not([data-colour=none]){border-color:#0003}.pl-swatch[data-colour=grey]{background:#e4e4e2}.pl-swatch[data-colour=red]{background:#fbdedf}.pl-swatch[data-colour=yellow]{background:#fdf1d8}.pl-swatch[data-colour=orange]{background:#fadfc6}.pl-swatch[data-colour=blue]{background:#dce7f6}.pl-row[data-colour=grey] td:not(.pl-who){background:#e4e4e2}.pl-row[data-colour=red] td:not(.pl-who){background:#fbdedf}.pl-row[data-colour=yellow] td:not(.pl-who){background:#fdf1d8}.pl-row[data-colour=orange] td:not(.pl-who){background:#fadfc6}.pl-row[data-colour=blue] td:not(.pl-who){background:#dce7f6}.pl-row[data-editing-row=true] td:not(.pl-who){box-shadow:inset 0 0 0 2px var(--ink)}.pl-row[data-moving-source=true] td:not(.pl-who),.pl-row[data-moving-source=true] td.pl-who,.pl-row[data-menu-source=true] td:not(.pl-who),.pl-row[data-menu-source=true] td.pl-who{position:relative;z-index:3;box-shadow:inset 0 0 0 3px var(--ink)}.pl-row[data-moving-source=true]{cursor:grab}.planner[data-dragging=true]{touch-action:none}.pl-row[data-drop-here=before] td,.pl-row[data-drop-here=before] th{box-shadow:inset 0 3px 0 var(--rule)}.pl-row[data-drop-here=after] td,.pl-row[data-drop-here=after] th{box-shadow:inset 0 -3px 0 var(--rule)}.pl-row[data-drop-target=true]:not([data-moving-source=true]){cursor:copy}.pl-row[data-drop-target=true]:not([data-moving-source=true]):hover td,.pl-row[data-drop-target=true]:not([data-moving-source=true]):hover th.pl-who{box-shadow:inset 0 2px 0 var(--rule)}.pl-movebar{margin:0 0 8px;padding:8px 10px;border:1px solid var(--rule);border-left-width:4px;border-radius:3px;background:#f4f0e8;color:var(--ink);font-size:12px;line-height:1.4}.pl-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:16px;background:#1c1b1829;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.pl-menu{display:grid;width:min(220px,100%);border:1px solid var(--rule);border-radius:6px;overflow:hidden;background:var(--card);box-shadow:0 10px 30px #1c1b1838}.pl-menu,.pl-menu *{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.pl-menu button{min-height:38px;padding:6px 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--card);color:var(--ink);text-align:left;font:inherit;cursor:pointer}.pl-menu button:last-child{border-bottom:0}.pl-menu button:disabled{color:var(--muted);cursor:default}.pl-menu button.danger:not(:disabled){color:var(--danger)}.pl-holiday{display:block;font-size:9.5px;color:var(--muted);line-height:1.2;margin-top:2px}.chip.swatch[data-colour=yellow]{background:#fdf1d8}.chip.swatch[data-colour=orange]{background:#fadfc6}.planner td.pl-who[data-open=true]{cursor:pointer}.pl-row[data-today=true] th.pl-day{border-right-color:var(--ink)}.pl-add{font:inherit;color:var(--muted);background:transparent;border:1px dashed var(--line);border-radius:3px;padding:2px 10px;cursor:pointer}.pl-add:hover{color:var(--ink);border-color:var(--muted)}.pl-empty-description{display:flex;align-items:center;gap:6px}.pl-empty-description .pl-longbox{flex:1;min-width:0}.pl-empty-description .pl-add{flex:none}.pl-daytally{display:block;margin-top:3px;font-size:10px;font-weight:700;letter-spacing:.02em}.pl-daytally[data-state=ok]{color:#2f8f4e}.pl-daytally[data-state=late]{color:var(--rule)}.pl-daytally[data-state=open]{color:var(--muted)}.pl-row[data-today=true] .pl-daytally[data-state=open]{color:#cfd3d8}.pl-order{display:flex;flex-direction:column;gap:2px;margin-right:4px}.pl-order .linkbtn{width:26px;height:22px;border:1px solid var(--line);border-radius:3px;background:var(--card);font-size:13px;line-height:1}.pl-order .linkbtn:disabled{opacity:.35}
