:root{--color-bg:#f7f7f8;--color-surface:#fff;--color-surface-2:#f1f2f4;--color-ink:#1c1d1f;--color-muted:#6b6f76;--color-line:#e2e4e8;--color-accent:#2f6feb;--color-accent-2:#0d9488;--color-danger:#d64545;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-heading:var(--font-body);--font-mono:ui-monospace, "SF Mono", "Cascadia Code", "Courier New", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-panel:0 1px 2px #1018280f, 0 4px 12px #1018280a;--space-scale:1;--shell-width:1120px;--dashboard-columns:2;color:var(--color-ink);background:var(--color-bg);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.45}*{box-sizing:border-box}body{background:var(--app-body-background,var(--color-bg));min-width:320px;min-height:100svh;margin:0}h1,h2,h3{font-family:var(--font-heading)}button,input,textarea,select{font:inherit}button,.button-link{border:1px solid var(--color-ink);border-radius:var(--radius-md);background:var(--color-ink);min-height:40px;color:var(--color-surface);cursor:pointer;justify-content:center;align-items:center;padding:9px 14px;font-weight:700;text-decoration:none;transition:transform .18s,background-color .18s,border-color .18s,color .18s;display:inline-flex}button:hover,.button-link:hover{transform:translateY(-1px)}button:active,.button-link:active{transform:translateY(0)}button:focus-visible,.button-link:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb, var(--color-accent) 72%, white);outline-offset:2px}button:disabled{opacity:.6;cursor:wait;transform:none}input,textarea,select{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-ink);padding:11px 12px}textarea{resize:vertical;min-height:130px}label{color:var(--color-muted);gap:6px;font-size:.88rem;font-weight:700;display:grid}.loading-screen,.login-screen{place-items:center;min-height:100svh;padding:22px;display:grid}.login-panel{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);width:min(460px,100%);box-shadow:var(--shadow-panel);padding:28px}.login-panel h1,.top-strip h1{letter-spacing:0;margin:0;font-size:clamp(2.2rem,7vw,4.9rem);line-height:.9}.login-panel form,.form-panel{gap:12px;display:grid}.app-shell{width:min(var(--shell-width), calc(100% - 28px));margin:0 auto;padding:18px 0 54px}.top-strip{justify-content:space-between;align-items:end;gap:18px;padding:20px 0;display:flex}.top-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.top-actions span{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 78%, transparent);color:var(--color-muted);font-family:var(--font-mono);padding:9px 10px;font-size:.82rem}.top-actions .origin-link{text-overflow:ellipsis;border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 78%, transparent);max-width:100%;color:var(--color-muted);font-family:var(--font-mono);padding:9px 10px;font-size:.82rem;text-decoration:none;overflow:hidden}.top-actions .origin-link:hover{color:var(--color-ink);border-color:color-mix(in srgb, var(--color-accent) 42%, var(--color-line))}.top-actions .unlock-status{border-color:color-mix(in srgb, var(--color-accent-2) 42%, var(--color-line));color:var(--color-accent-2);font-weight:800}.top-actions .unlock-status.warning{border-color:color-mix(in srgb, var(--color-danger) 58%, var(--color-line));color:var(--color-danger)}.tab-bar{z-index:5;background:color-mix(in srgb, var(--color-bg) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;padding:10px 0;display:grid;position:sticky;top:0}.tab-bar button{border-color:var(--color-line);background:var(--color-surface);color:var(--color-ink)}.tab-bar button.active{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-surface)}.dashboard-grid,.workspace-grid{grid-template-columns:repeat(var(--dashboard-columns), minmax(0, 1fr));gap:calc(12px * var(--space-scale));display:grid}.admin-grid{margin-top:12px}.panel{padding:calc(18px * var(--space-scale));border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-panel)}.empty-state{margin-top:12px}.empty-state h2{margin:0;font-size:clamp(1.45rem,4vw,2.4rem)}.span-2{grid-column:1/-1}.module-small{min-height:190px}.module-wide,.module-full{grid-column:1/-1}.module-full{min-height:420px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.panel h2{margin:0;font-size:clamp(1.35rem,4vw,2.1rem);line-height:1.05}.panel p{color:var(--color-muted)}.kicker{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:.74rem;font-weight:800}.big-number{color:var(--color-ink);font-size:clamp(3rem,11vw,6rem);line-height:.82}.metric-row,.page-chip-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.metric-row span,.pill{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 82%, transparent);padding:8px 10px;font-weight:700}.day-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.day-grid div,.plain-row,.tide-card,.detail-box,.module-row{border:1px solid color-mix(in srgb, var(--color-line) 80%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, transparent);gap:5px;min-width:0;padding:12px;display:grid}.inline-edit{min-height:unset;padding:4px 8px;font-size:.9rem}.tide-track{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.tide-card.high{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-line))}.tide-card.low{border-color:color-mix(in srgb, var(--color-accent-2) 45%, var(--color-line))}.tide-card span,.page-chip span,.small-note,small{color:var(--color-muted);font-size:.82rem}.stack-list,.items,.module-list{gap:8px;margin-top:12px;display:grid}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.stat-grid div{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, transparent);gap:3px;padding:12px;display:grid}.stat-grid strong{font-size:1.7rem;line-height:1}.stat-grid span{color:var(--color-muted);font-size:.82rem}.check-card.ok{border-color:color-mix(in srgb, var(--color-accent-2) 55%, var(--color-line))}.check-card.warn,.warning-row{border-color:color-mix(in srgb, var(--color-danger) 50%, var(--color-line))}.status-badge{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 80%, transparent);width:fit-content;font-family:var(--font-mono);padding:8px 10px;font-size:.78rem;font-weight:800}.status-badge.ok{border-color:color-mix(in srgb, var(--color-accent-2) 48%, var(--color-line));color:var(--color-accent-2)}.status-badge.warn{border-color:color-mix(in srgb, var(--color-danger) 58%, var(--color-line));color:var(--color-danger)}.plain-row{border-color:var(--color-line);background:color-mix(in srgb, var(--color-surface) 70%, transparent);width:100%;color:var(--color-ink);text-align:left;text-decoration:none}.page-chip{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 78%, transparent);min-width:min(190px,100%);color:var(--color-ink);padding:13px;text-decoration:none;display:grid}.inline-form{grid-template-columns:1fr auto;gap:8px;margin:12px 0;display:grid}.button-row,.inline-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-controls select{width:auto;min-width:120px}.compact-link{min-height:34px;padding:7px 10px}.module-controls{grid-template-columns:minmax(0,1fr) minmax(112px,.34fr);align-items:start;gap:10px 12px;display:grid}.module-actions{flex-wrap:wrap;grid-column:1;align-items:center;gap:8px;display:flex}.module-actions button{white-space:nowrap}.module-options{grid-column:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.module-options>.compact-field{min-width:0}.module-options>.api-key-field,.module-options>.api-key-link{grid-column:1/-1}.module-options>.setting-secret-status{color:var(--color-muted);grid-column:1/-1;padding:2px 0;font-size:.7rem}.setting-option-help{color:var(--color-muted);margin-top:1px;font-size:.68rem;line-height:1.3;display:block}.compact-field{gap:4px;min-width:0;font-size:.74rem}.compact-field select,.compact-field input{min-height:40px}.position-field input{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.position-field{grid-area:1/2/span 12;place-self:start end;width:max-content}.position-label{color:var(--color-muted);font-size:.74rem;display:block}.reorder-bar{justify-content:flex-start;align-items:center;gap:4px;width:max-content;min-height:0;display:flex}.reorder-bar .position-value{min-width:2ch;color:var(--color-muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:center;padding:0 2px;font-size:.82rem;line-height:1}.drag-handle{border-radius:var(--radius-sm);width:22px;min-height:22px;color:var(--color-muted);cursor:grab;letter-spacing:1px;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:2px 0;font-size:.7rem;line-height:1;display:inline-flex}.drag-handle:active{cursor:grabbing}.dragging{opacity:.55}.drag-over{border-color:var(--color-accent-2)!important;background:color-mix(in srgb, var(--color-accent-2) 10%, var(--color-surface))!important}.item{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 72%, transparent);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 11px;display:grid}.item.done span{color:var(--color-muted);text-decoration:line-through}.icon-button{min-width:34px;min-height:34px;padding:4px}.ghost{border-color:var(--color-line);color:var(--color-ink);background:0 0}.danger{color:var(--color-danger)}button.danger:not(.ghost){border-color:var(--color-danger);background:var(--color-danger);color:var(--color-surface)}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.markdown{color:var(--color-ink);overflow-wrap:anywhere}.markdown p:first-child{margin-top:0}.markdown p:last-child{margin-bottom:0}.tag-line{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface-2);width:fit-content;font-family:var(--font-mono);padding:7px 10px;font-size:.82rem}.note-panel .markdown{padding:8px 0;font-size:1.05rem;line-height:1.55}.note-actions{align-items:center;gap:4px;display:flex}.note-toolbar{align-items:center;gap:10px;display:flex}.note-search{flex:1;min-width:0}.note-sort{width:auto;min-width:0}.note-formatting-bar{align-items:center;gap:4px;display:flex}.note-tag-section{align-items:flex-start;gap:8px;display:flex}.note-tag-editor{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.note-tag-chips{flex-wrap:wrap;gap:4px;display:flex}.note-chip{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface-2);font-family:var(--font-mono);align-items:center;gap:4px;padding:3px 8px;font-size:.78rem;display:inline-flex}.note-chip-x{color:var(--color-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem;line-height:1}.note-chip-x:hover{color:var(--color-danger)}.note-tag-suggestions{flex-wrap:wrap;gap:4px;display:flex}.note-tag-suggestion{border:1px solid var(--color-line);border-radius:var(--radius-md);color:var(--color-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;padding:2px 8px;font-size:.78rem}.note-tag-suggestion:hover{border-color:var(--color-ink);color:var(--color-ink)}.note-edit-form{flex-direction:column;gap:10px;display:flex}.note-edit-title{width:100%;font:inherit;color:var(--color-ink);background:0 0;border:none}.note-edit-title:focus{outline:none}.note-edit-actions{gap:8px;display:flex}.page-panel.peach,.standalone-page.peach{background:#fff1e5}.page-panel.moon,.standalone-page.moon{background:#efedf6}.page-panel.fern,.page-panel.botanical{background:#edf5e9}.standalone-page{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);min-height:min(760px,100svh - 190px);box-shadow:var(--shadow-panel);align-content:center;gap:16px;padding:clamp(24px,8vw,82px);display:grid}.standalone-page h1{max-width:780px;margin:0;font-size:clamp(2.5rem,10vw,7rem);line-height:.92}.standalone-page .button-link{width:fit-content}.standalone-page.botanical,.standalone-page.fern{background:linear-gradient(135deg,#edf5e9f2,#fffaf0f5),#edf5e9}.module-row{grid-template-columns:minmax(220px,1fr) minmax(380px,.95fr);align-items:start;gap:14px 18px}.module-row>div:first-child,.module-summary{gap:5px;display:grid}.module-title-row{align-items:center;gap:8px;display:flex}.module-row.enabled{border-color:color-mix(in srgb, var(--color-accent-2) 55%, var(--color-line))}.user-row{border:1px solid color-mix(in srgb, var(--color-line) 80%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, transparent);grid-template-columns:minmax(0,1fr);align-items:start;gap:10px;min-width:0;padding:12px;display:grid}.user-row.inactive{opacity:.8}.user-meta{gap:4px;min-width:0;display:grid}.user-meta span{color:var(--color-muted)}.user-subline{flex-wrap:wrap;align-items:baseline;gap:6px 8px;display:flex}.user-username{color:var(--color-ink);font-family:var(--font-mono);white-space:nowrap;font-size:.84rem}.user-role{min-width:0}.user-actions{flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:8px;display:flex}.user-actions button{white-space:nowrap}.user-edit-input{width:100%}.module-config-row{align-items:start}.module-config-row.uninstalled{opacity:.82}.module-meta{flex-wrap:wrap;gap:6px;margin-top:3px;display:flex}.module-meta small{border:1px solid var(--color-line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 70%, transparent);width:fit-content;font-family:var(--font-mono);text-transform:capitalize;padding:4px 7px;font-size:.72rem;line-height:1}.manifest-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.manifest-card{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, transparent);gap:12px;min-width:0;padding:13px;display:grid}.manifest-card .panel-heading{align-items:flex-start}.manifest-card .panel-heading>div{gap:4px;min-width:0;display:grid}.manifest-card span,.manifest-fields dd{color:var(--color-muted)}.manifest-fields{gap:7px;margin:0;display:grid}.manifest-fields div{grid-template-columns:118px minmax(0,1fr);gap:8px;display:grid}.manifest-fields dt{color:var(--color-ink);font-size:.78rem;font-weight:800}.manifest-fields dd{overflow-wrap:anywhere;min-width:0;font-family:var(--font-mono);margin:0;font-size:.78rem}.metadata-preview textarea{min-height:96px;font-family:var(--font-mono);font-size:.8rem}.activity-list{gap:8px;margin-top:12px;display:grid}.activity-row{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:12px;display:grid}.activity-row>div:first-child{gap:4px;min-width:0;display:grid}.activity-row span{color:var(--color-muted);font-size:.82rem}.activity-tags{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.activity-tags small{border:1px solid var(--color-line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-surface) 70%, transparent);font-family:var(--font-mono);padding:4px 7px;line-height:1}.notice,.form-error{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);margin:10px 0;padding:12px}.modal-backdrop{z-index:20;background:color-mix(in srgb, var(--color-ink) 35%, transparent);place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal-panel{width:min(460px,100%)}.icon-settings{font-size:1.1em;line-height:1}.density-fieldset{border:none;margin:16px 0 0;padding:0}.density-fieldset legend{margin-bottom:8px;font-weight:600;display:block}.density-options{gap:6px;display:flex}.density-btn{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);min-height:36px;color:var(--color-ink);cursor:pointer;flex:1;padding:6px 10px;font-size:.85rem;font-weight:600;transition:background-color .12s,border-color .12s}.density-btn:hover{background:var(--color-surface-2)}.density-btn.active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-surface)}.error,.form-error{border-color:color-mix(in srgb, var(--color-danger) 50%, var(--color-line));color:var(--color-danger)}.activity-filter{flex-wrap:wrap;gap:8px;margin-top:12px;margin-bottom:4px;display:flex}.activity-filter select,.activity-filter input{flex:160px;width:auto}.metadata-preview{gap:6px;display:grid}.metadata-preview-header{color:var(--color-muted);justify-content:space-between;align-items:center;font-size:.88rem;font-weight:700;display:flex}.toast-tray{z-index:30;gap:8px;max-width:min(360px,100vw - 44px);display:grid;position:fixed;bottom:22px;right:22px}.toast{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-panel);align-items:center;gap:10px;padding:11px 14px;font-size:.9rem;animation:.18s both toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast span{flex:1}.toast-warn{border-color:color-mix(in srgb, var(--color-danger) 45%, var(--color-line));background:color-mix(in srgb, var(--color-surface) 85%, var(--color-danger));color:var(--color-danger)}.toast button.ghost{min-height:unset;padding:4px 9px;font-size:1rem;line-height:1}:root[data-density=compact]{font-size:14px}:root[data-density=compact] .panel{padding:calc(13px * var(--space-scale))}:root[data-density=compact] .dashboard-grid,:root[data-density=compact] .workspace-grid{gap:calc(8px * var(--space-scale))}:root[data-surface=flat] .panel{box-shadow:none;border-color:#0000}:root[data-surface=outline] .panel{box-shadow:none;background:0 0}@media (width>=821px){:root[data-nav=side] .app-shell{grid-template-columns:180px minmax(0,1fr);align-items:start;column-gap:18px;display:grid}:root[data-nav=side] .top-strip{grid-column:1/-1}:root[data-nav=side] .tab-bar{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);grid-area:2/1/9999;grid-template-columns:1fr;grid-auto-columns:auto;grid-auto-flow:row;align-content:start;padding:10px;top:12px}:root[data-nav=side] .app-shell>:not(.top-strip):not(.tab-bar){grid-column:2}}.network-grid{align-items:start}.network-share-grid{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;margin-top:12px;display:grid}.network-credentials{gap:8px;display:grid}.network-qr-wrap{place-items:center;display:grid}.network-qr{aspect-ratio:1;border:1px solid var(--color-line);border-radius:var(--radius-md);background:#fff;width:min(280px,100%);padding:10px}.device-row{border:1px solid color-mix(in srgb, var(--color-line) 80%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 70%, transparent);grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:10px;min-width:0;padding:12px;display:grid}.device-row>div{gap:4px;display:grid}.device-row span{color:var(--color-muted)}@media (width<=820px){.app-shell{width:min(100% - 18px,560px);padding-top:8px}.top-strip,.panel-heading{display:grid}.top-actions{justify-content:start}.tab-bar{grid-auto-columns:max-content;grid-auto-flow:column;overflow-x:auto}.dashboard-grid,.workspace-grid,.day-grid,.two-col,.stat-grid,.tide-feature-grid{grid-template-columns:1fr}.tide-day-events{grid-template-columns:repeat(2,minmax(0,1fr))}.tide-current-labels{flex-direction:column;gap:4px}.module-row,.network-share-grid,.device-row,.module-controls{grid-template-columns:1fr}.module-actions,.module-options,.position-field{grid-area:auto/1;justify-self:stretch;width:100%}.module-options{grid-template-columns:1fr}.module-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.module-actions button{width:100%}.reorder-bar{min-height:44px}.reorder-bar .icon-button{min-width:40px;min-height:40px}.module-edit-controls,.edit-options,.edit-display-options{flex-direction:column;align-items:stretch}.edit-options .compact-field,.edit-display-options .compact-field{width:100%}.hidden-widgets-list{flex-direction:column}.manifest-detail-grid,.manifest-fields div,.activity-row{grid-template-columns:1fr}.activity-tags{justify-content:flex-start}.activity-filter{flex-direction:column}.activity-filter select,.activity-filter input{flex:none;width:100%}.toast-tray{max-width:calc(100vw - 24px);bottom:12px;right:12px}.module-wide,.module-full{grid-column:auto}.note-toolbar{flex-direction:column;align-items:stretch}.note-actions,.note-formatting-bar{flex-wrap:wrap}}body{background:radial-gradient(circle at 50% -10%,#3a6f4d14,#0000 32rem),linear-gradient(#f9f8f5 0%,#f4f2ee 100%)}.app-shell{--app-green:#2f6645;--app-green-2:#477a57;--app-cream:#f7f5ef;--app-card:#fff;--app-tile:#efebe5;--app-ink:#151922;--app-muted:#76736c;--app-shadow:0 18px 34px #26392e21;width:min(568px,100% - 32px);min-height:100svh;color:var(--app-ink);padding:18px 0 112px;font-family:Aptos,Trebuchet MS,sans-serif}.app-shell:has(.admin-grid){width:min(var(--shell-width), calc(100% - 28px))}.top-strip{align-items:start;gap:14px;padding:0 4px 22px;display:grid}.top-strip h1{letter-spacing:-.04em;margin:0;font-family:Aptos Display,Trebuchet MS,sans-serif;font-size:clamp(1.25rem,4vw,1.45rem);line-height:1.1}.top-strip p{color:var(--app-muted);margin:5px 0 0;font-size:.88rem}.top-actions{justify-content:flex-start;gap:6px}.top-actions span,.top-actions .origin-link{text-overflow:ellipsis;max-width:100%;color:var(--app-muted);background:0 0;border:0;padding:0;font-size:.7rem;overflow:hidden}.top-actions button,.top-actions .ghost{min-height:30px;color:var(--app-green);box-shadow:none;background:#ffffffb8;border:1px solid #2f664533;border-radius:999px;padding:5px 9px;font-size:.78rem}.tab-bar{z-index:18;padding:10px max(12px, calc((100vw - 568px) / 2)) calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border-top:1px solid #1519221f;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0;display:grid;position:fixed;inset:auto 0 0;box-shadow:0 -10px 24px #1519220d}.tab-bar button{color:#807c75;letter-spacing:.04em;text-transform:uppercase;min-height:48px;box-shadow:none;background:0 0;border:0;border-radius:16px;gap:2px;padding:3px 4px;font-size:.64rem;font-weight:800;display:grid}.tab-bar button span:first-child{font-size:1.28rem;line-height:1}.tab-bar button.active{color:var(--app-green);background:0 0}.home-dashboard{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.home-dashboard .panel{box-shadow:var(--app-shadow);border:0;border-radius:18px}.weather-panel{color:#fff;background:radial-gradient(circle at 94% 17%,#d6f2e22e 0 4.2rem,#0000 4.25rem),radial-gradient(circle at 12% 116%,#43a38452,#0000 12rem),linear-gradient(135deg,#326f4d 0%,#265e42 48%,#173d2c 100%);min-height:193px;padding:24px 22px 20px;position:relative;overflow:hidden}.weather-place{z-index:1;color:#ffffffb8;letter-spacing:0;font-size:.74rem;font-weight:900;position:relative}.weather-current{z-index:1;align-items:center;gap:18px;margin-top:10px;display:flex;position:relative}.weather-current p{color:#ffffffd1;margin:1px 0 0;font-size:.96rem;font-weight:700}.weather-icon{filter:drop-shadow(0 12px 11px #121f183d);width:72px;font-size:3.8rem;line-height:1}.weather-panel .big-number{color:#fff;letter-spacing:0;font-size:3.72rem}.weather-panel .big-number:after{content:"C";letter-spacing:0;margin-left:2px;font-size:1rem;position:relative;top:-1.05rem}.weather-panel .metric-row{z-index:1;border-top:1px solid #ffffff2e;gap:12px;margin-top:19px;padding-top:13px;position:relative}.weather-panel .metric-row span{color:#ffffffd1;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:.8rem;font-weight:800;display:inline-flex}.weather-metric-icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 14px;width:14px;height:14px}.weather-metric-emoji{flex:0 0 14px;justify-content:center;align-items:center;width:14px;height:14px;font-size:.9rem;line-height:1;display:inline-flex}.weather-forecast-grid{z-index:1;background:linear-gradient(90deg,#ffffff17,#0000 26%,#73bda61a),#092a1b3d;border:1px solid #daf2de2e;border-radius:16px;grid-template-columns:repeat(5,minmax(88px,1fr));gap:0;margin-top:13px;padding:10px;display:grid;position:relative;box-shadow:inset 0 1px #ffffff1f,0 16px 34px #081d1229}.weather-forecast-grid .weather-forecast-card{color:#fff;min-width:0;min-height:142px;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-rows:auto 42px minmax(34px,auto) auto 28px auto;align-content:stretch;gap:6px;padding:4px 12px 2px;display:grid;position:relative}.weather-forecast-grid .weather-forecast-card+.weather-forecast-card{border-left:1px solid #e1f7e029}.weather-forecast-date{color:#e9f9e2e0;font-size:.74rem;font-weight:900}.weather-forecast-grid .weather-forecast-card strong{color:#fff;font-size:.92rem;line-height:1.12}.weather-forecast-grid .weather-forecast-card small{color:#dbead3;font-size:.8rem;font-weight:800}.weather-extended-forecast{z-index:1;border-top:1px solid #ffffff2e;margin-top:16px;padding-top:15px;position:relative}.weather-forecast-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.weather-forecast-heading .kicker{color:#ffffffc7;margin:0}.weather-forecast-heading span{color:#d8ebcdb3;font-size:.76rem;font-weight:900}.weather-extended-icon{filter:drop-shadow(0 8px 10px #07160e3d);background:linear-gradient(#fffffffa,#e2f1e4e6);border:1px solid #ffffffb8;border-radius:50%;place-items:center;width:42px;height:42px;font-size:1.7rem;line-height:1;display:inline-grid}.weather-precip-track{background:#ffffff1f;border-radius:999px;align-self:end;align-items:end;width:100%;height:26px;display:flex;overflow:hidden}.weather-precip-track span{width:100%;height:max(3px, var(--precip));border-radius:inherit;background:linear-gradient(#7ed8ff 0%,#3fa4d4 100%);display:block;box-shadow:0 0 14px #7ed8ff47}.weather-extended-precip{color:#daf0d3db;align-items:center;gap:4px;font-size:.8rem;font-weight:800;display:flex}.info-tooltip{display:inline-flex;position:relative}.info-tooltip-trigger{cursor:help;align-items:center;display:inline-flex}.info-tooltip-trigger:focus{outline-offset:2px;border-radius:4px;outline:2px solid #ffffff80}.info-tooltip-bubble{z-index:20;color:#fff;text-align:center;white-space:normal;pointer-events:none;background:#0a2416f0;border-radius:8px;max-width:220px;padding:6px 10px;font-size:.72rem;font-weight:700;line-height:1.35;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000047}.info-tooltip-bubble:after{content:"";border:5px solid #0000;border-top-color:#0a2416f0;position:absolute;top:100%;left:50%;transform:translate(-50%)}.info-tooltip--open .info-tooltip-bubble{display:block}.weather-hourly{z-index:1;border-top:1px solid #ffffff2e;margin-top:16px;padding-top:15px;position:relative}.weather-hourly-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.weather-hourly-heading .kicker{color:#ffffffc7;margin:0}.weather-hourly-heading span{color:#d8ebcdb3;font-size:.76rem;font-weight:900}.weather-hourly-track{overscroll-behavior-inline:contain;scrollbar-width:thin;scroll-snap-type:x proximity;gap:8px;margin-top:12px;padding-bottom:4px;display:flex;overflow-x:auto}.weather-hourly-track::-webkit-scrollbar{height:4px}.weather-hourly-track::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.weather-hourly-tooltip{flex:none}.weather-hour-card{scroll-snap-align:start;text-align:center;background:#ffffff12;border:1px solid #daf2de24;border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-width:72px;padding:8px 10px;display:flex}.weather-hour-time{color:#ffffffad;letter-spacing:.01em;font-size:.68rem;font-weight:900}.weather-hour-icon{font-size:1.3rem;line-height:1}.weather-hour-temp{color:#fff;font-size:.82rem;font-weight:800}.weather-hour-rain{color:#7ed8ffe6;font-size:.66rem;font-weight:700}.weather-precip-tooltip .info-tooltip-trigger{width:100%;display:block}@media (width<=820px){.weather-forecast-grid{grid-template-columns:repeat(3,minmax(92px,1fr));row-gap:14px}.weather-forecast-grid .weather-forecast-card:nth-child(4){border-left:0}}@media (width<=520px){.weather-panel{overflow-x:auto}.weather-panel .big-number{font-size:3.25rem}.weather-forecast-grid{overscroll-behavior-inline:contain;scrollbar-width:thin;grid-template-columns:repeat(5,minmax(112px,1fr));overflow-x:auto}.weather-forecast-grid .weather-forecast-card:nth-child(odd){border-left:1px solid #e1f7e029}.weather-forecast-grid .weather-forecast-card:first-child{border-left:0}.weather-hourly-track{gap:6px}.weather-hour-card{min-width:64px;padding:6px 8px}.info-tooltip-bubble{max-width:180px;font-size:.68rem}}.home-dashboard+*{margin-top:0}.edit-mode-toolbar{border:1px dashed var(--color-accent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-accent) 6%, var(--color-surface));align-items:center;gap:10px;padding:10px 14px;display:flex}.edit-mode-label{color:var(--color-accent);letter-spacing:.02em;font-size:.82rem;font-weight:700}.edit-mode-active{border-color:var(--color-accent);color:var(--color-accent)}.edit-widget-wrapper{position:relative}.edit-widget-wrapper .panel{border:2px solid #0000;transition:border-color .18s}.edit-widget-wrapper:hover .panel{border-color:color-mix(in srgb, var(--color-accent) 30%, transparent)}.module-edit-controls{border-top:1px solid var(--color-line);background:color-mix(in srgb, var(--color-surface) 85%, var(--color-bg));border-radius:0 0 var(--radius-md) var(--radius-md);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.edit-reorder{align-items:center;gap:4px;display:flex}.edit-options{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.edit-options .compact-field{min-width:0}.edit-display-options{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.hidden-widgets-strip{border:1px dashed var(--color-muted);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface-2) 50%, transparent);padding:12px 14px}.hidden-widgets-strip .kicker{margin-bottom:8px}.hidden-widgets-list{flex-wrap:wrap;gap:8px;display:flex}.hidden-widgets-list button{white-space:nowrap}.tide-panel{background:var(--app-card);gap:16px;padding:20px;display:grid;overflow:hidden}.tide-panel .panel-heading{background:linear-gradient(145deg, color-mix(in srgb, var(--color-accent-2) 14%, var(--app-card)) 0%, color-mix(in srgb, var(--color-accent-2) 4%, var(--app-card)) 100%);border-bottom:1px solid color-mix(in srgb, var(--color-accent-2) 22%, var(--color-line));justify-content:space-between;align-items:center;gap:16px;margin:-20px -20px 0;padding:20px 22px 18px;display:flex}.tide-panel .kicker{color:color-mix(in srgb, var(--color-accent-2) 80%, var(--color-muted));letter-spacing:.08em;margin-bottom:6px;font-family:inherit;font-size:.72rem}.tide-panel h2{color:var(--app-ink);letter-spacing:-.04em;font-family:Aptos Display,Trebuchet MS,sans-serif;font-size:1.22rem}.tide-panel-summary{max-width:30ch;color:color-mix(in srgb, var(--color-muted) 90%, var(--color-accent-2));margin-top:4px;font-size:.84rem}.tide-mark{background:color-mix(in srgb, var(--color-accent-2) 16%, var(--color-surface));border:1.5px solid color-mix(in srgb, var(--color-accent-2) 28%, var(--color-line));width:46px;height:46px;box-shadow:0 2px 8px color-mix(in srgb, var(--color-accent-2) 18%, transparent);border-radius:12px;flex:0 0 46px;place-items:center;font-size:1.45rem;line-height:1;display:inline-grid}.tide-section{gap:8px;display:grid}.tide-section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.tide-section-title{color:var(--app-ink);letter-spacing:.07em;text-transform:uppercase;font-size:.86rem;font-weight:900}.tide-section-subtitle{color:#7b7772;font-size:.78rem}.tide-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.tide-feature-card,.tide-day-card,.tide-empty-state{border:1.5px solid color-mix(in srgb, var(--color-line) 80%, transparent);background:color-mix(in srgb, var(--color-surface) 70%, transparent);border-radius:14px}.tide-feature-card{gap:6px;min-height:140px;padding:16px 18px;display:grid}.tide-feature-card.high{border-color:color-mix(in srgb, var(--color-accent) 50%, var(--color-line));background:linear-gradient(155deg, color-mix(in srgb, var(--color-accent) 7%, var(--color-surface)) 0%, color-mix(in srgb, var(--color-surface) 92%, transparent) 70%)}.tide-feature-card.low{border-color:color-mix(in srgb, var(--color-accent-2) 50%, var(--color-line));background:linear-gradient(155deg, color-mix(in srgb, var(--color-accent-2) 7%, var(--color-surface)) 0%, color-mix(in srgb, var(--color-surface) 92%, transparent) 70%)}.tide-feature-badge,.tide-day-event span,.tide-day-head span{color:var(--color-muted);letter-spacing:.09em;text-transform:uppercase;font-size:.7rem;font-weight:900}.tide-feature-card strong{color:var(--app-ink);letter-spacing:-.03em;font-size:1.02rem}.tide-feature-time{color:var(--app-ink);letter-spacing:-.04em;font-size:1.62rem;font-weight:900;line-height:1}.tide-feature-card em{color:#7b7772;font-size:.76rem;font-style:normal;font-weight:700}.tide-feature-card small,.tide-day-event small{color:#77746f;font-size:.82rem}.tide-day-list{gap:10px;display:grid}.tide-day-card{gap:10px;padding:12px 14px;display:grid}.tide-day-head{justify-content:flex-start;align-items:center;gap:10px;display:flex}.tide-day-title{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.tide-day-head strong{color:var(--app-ink);letter-spacing:-.03em;font-size:.92rem}.tide-day-badge{background:color-mix(in srgb, var(--color-accent-2) 12%, var(--color-surface));color:var(--color-accent-2);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;padding:2px 7px;font-size:.68rem;font-weight:900;display:inline-flex}.tide-day-events{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.tide-day-event{border:1.5px solid color-mix(in srgb, var(--color-line) 75%, transparent);background:color-mix(in srgb, var(--color-surface) 82%, transparent);border-radius:12px;gap:4px;min-width:0;padding:9px 10px;display:grid}.tide-day-event.high{border-color:color-mix(in srgb, var(--color-accent) 45%, var(--color-line));background:linear-gradient(135deg, color-mix(in srgb, var(--color-accent) 6%, var(--color-surface)) 0%, var(--color-surface) 70%)}.tide-day-event.low{border-color:color-mix(in srgb, var(--color-accent-2) 45%, var(--color-line));background:linear-gradient(135deg, color-mix(in srgb, var(--color-accent-2) 6%, var(--color-surface)) 0%, var(--color-surface) 70%)}.tide-day-event strong{color:var(--app-ink);letter-spacing:-.02em;font-size:.94rem}.tide-empty-state{color:#6d6a65;padding:14px;font-size:.88rem}.tide-source-note{border-top:1px solid color-mix(in srgb, var(--color-line) 50%, transparent);color:#6d6a65;margin-top:4px;padding-top:8px;font-size:.83rem}.tide-source-note a{color:#285f43}.tide-current-section{gap:10px;display:grid}.tide-current-scale{gap:8px;display:grid}.tide-current-track{background:color-mix(in srgb, var(--color-line) 60%, transparent);border-radius:999px;height:8px;position:relative;overflow:visible}.tide-current-fill{background:linear-gradient(90deg, color-mix(in srgb, var(--color-accent-2) 55%, var(--color-surface)) 0%, color-mix(in srgb, var(--color-accent) 55%, var(--color-surface)) 100%);border-radius:999px;height:100%;transition:width .4s;position:absolute;top:0;left:0}.tide-current-needle{background:var(--app-ink);border:2px solid var(--color-surface);border-radius:50%;width:14px;height:14px;transition:left .4s;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px #00000040}.tide-current-labels{justify-content:space-between;gap:12px;display:flex}.tide-current-endpoint{gap:2px;min-width:0;display:grid}.tide-current-endpoint strong{color:var(--app-ink);letter-spacing:-.02em;font-size:.78rem}.tide-current-endpoint small{color:#7b7772;font-size:.72rem}.tide-current-height{color:#77746f;font-size:.82rem}.tide-countdown-section{display:grid}.tide-countdown-row{align-items:baseline;gap:8px;display:flex}.tide-countdown-label{color:var(--color-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:700}.tide-countdown-value{color:var(--app-ink);letter-spacing:-.03em;font-size:1.15rem;font-weight:900}.workspace-grid{grid-template-columns:1fr}.workspace-grid.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.network-panel .plain-row{text-decoration:none}.network-panel .status-badge{align-self:start}.launchpad-grid,.note-launchpad-grid,.network-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.launchpad-card{min-width:0}.launchpad-card p,.launchpad-card small{color:var(--color-muted)}.note-launchpad-card{text-align:left}.note-launchpad-head{gap:4px;display:grid}.note-launchpad-card p{margin:0}.note-launchpad-card .tag-line{margin-top:4px}@media (width>=821px){:root[data-nav=side] .app-shell:not(:has(.admin-grid)){display:block}:root[data-nav=side] .app-shell:not(:has(.admin-grid))>*{grid-column:auto}}@media (width<=620px){.app-shell{width:min(100% - 24px,568px)}.top-actions span,.top-actions .origin-link{display:none}}.star-marker{color:var(--color-accent);font-style:normal}.item-row{gap:4px;display:grid}.item-row .item{margin-bottom:0}.item-metadata-form{border:1px solid var(--color-line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 85%, transparent);flex-wrap:wrap;gap:8px;margin:8px 0;padding:8px;display:flex}.item-metadata-form .metadata-field{align-items:center;gap:4px;display:flex}.item-metadata-form .metadata-field input{min-width:80px;max-width:120px;padding:4px 8px;font-size:.85rem}.item-metadata-form .metadata-label{color:var(--color-muted);white-space:nowrap;font-size:.75rem}.item-metadata-inline{flex-wrap:wrap;align-items:center;gap:6px;padding:2px 12px 6px;display:flex}.item-metadata-inline .metadata-chip{color:var(--color-muted);background:color-mix(in srgb, var(--color-line) 40%, transparent);border-radius:var(--radius-sm);white-space:nowrap;padding:2px 6px;font-size:.78rem}.item-metadata-inline .metadata-add,.item-metadata-inline .metadata-edit{min-height:unset;min-width:unset;padding:2px 6px;font-size:.75rem}.item-metadata-edit{background:color-mix(in srgb, var(--color-surface) 90%, transparent);border:1px solid var(--color-line);border-radius:var(--radius-md);flex-wrap:wrap;align-items:flex-end;gap:6px;padding:6px 12px;display:flex}.item-metadata-edit .metadata-field{flex-direction:column;gap:2px;display:flex}.item-metadata-edit .metadata-field input{min-width:80px;max-width:120px;padding:4px 8px;font-size:.85rem}.item-metadata-edit .metadata-label{color:var(--color-muted);font-size:.7rem}.status-badge{border-radius:var(--radius-sm);vertical-align:middle;text-transform:uppercase;letter-spacing:.03em;margin-left:6px;padding:1px 5px;font-size:.7rem;font-weight:600;display:inline-block}.status-overdue{background:var(--color-danger);color:var(--color-surface)}.status-due_soon{background:var(--color-accent);color:var(--color-surface)}.status-missed{background:var(--color-muted);color:var(--color-surface)}.list-filter-row{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.list-filter-row .ghost{min-height:unset;padding:4px 8px;font-size:.8rem}.list-filter-row .ghost.active{background:var(--color-accent);color:var(--color-surface);border-color:var(--color-accent)}.home-status-overdue{color:var(--color-danger);font-weight:600}.home-status-due-soon{color:var(--color-accent);font-weight:600}@media (width<=920px){.workspace-grid.admin-grid{grid-template-columns:1fr}.user-actions{justify-content:flex-start}}.whiteboard-workspace{flex-direction:column;height:100%;display:flex;overflow:hidden}.wb-toolbar{background:var(--panel-bg,#fff);border-bottom:1px solid var(--border,#e5e7eb);flex-wrap:wrap;align-items:center;gap:8px;min-height:48px;padding:8px 12px;display:flex}.wb-tool-group,.wb-color-group,.wb-width-group,.wb-action-group{align-items:center;gap:4px;display:flex}.wb-divider{background:var(--border,#e5e7eb);width:1px;height:24px;margin:0 4px}.wb-tool-btn{border:1px solid var(--border,#e5e7eb);background:var(--panel-bg,#fff);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;transition:background .15s,border-color .15s;display:flex}.wb-tool-btn:hover{background:var(--hover-bg,#f3f4f6)}.wb-tool-btn.active{background:var(--active-bg,#e5e7eb);border-color:var(--accent,#3b82f6)}.wb-color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:border-color .15s,transform .1s}.wb-color-swatch:hover{transform:scale(1.15)}.wb-color-swatch.active{border-color:var(--text,#111827);transform:scale(1.15)}.wb-custom-color{border:2px dashed var(--border,#d1d5db);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:flex;overflow:hidden}.wb-custom-color input[type=color]{cursor:pointer;border:none;width:40px;height:40px;margin:-6px;padding:0}.wb-width-btn{border:1px solid var(--border,#e5e7eb);background:var(--panel-bg,#fff);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:background .15s,border-color .15s;display:flex}.wb-width-btn:hover{background:var(--hover-bg,#f3f4f6)}.wb-width-btn.active{background:var(--active-bg,#e5e7eb);border-color:var(--accent,#3b82f6)}.wb-width-dot{background:var(--text,#111827);border-radius:50%;display:block}.wb-action-btn{border:1px solid var(--border,#e5e7eb);background:var(--panel-bg,#fff);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;transition:background .15s;display:flex}.wb-action-btn:hover:not(:disabled){background:var(--hover-bg,#f3f4f6)}.wb-action-btn:disabled{opacity:.35;cursor:default}.wb-clear-btn:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.wb-canvas-container{background:#fff;flex:1;position:relative;overflow:hidden}.wb-canvas{touch-action:none;width:100%;height:100%;display:block}@media (width<=768px){.wb-toolbar{gap:4px;padding:6px 8px}.wb-divider{display:none}.wb-color-swatch{width:24px;height:24px}.wb-tool-btn,.wb-width-btn,.wb-action-btn{width:32px;height:32px}}
