:root{--page-bg:#fff;--surface:#faf9f6;--surface-2:#f4f2ed;--rule:#e6e3db;--rule-soft:#efede7;--ink:#2f2c27;--body:#57534b;--muted:#837d72;--faint:#9a948a;--gold:#9a7b2c;--gold-lt:#b99a4e;--clay:#a05a3c;--moss:#5b7d63;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:"Avenir Next", "Gill Sans MT", "Gill Sans", Optima, ui-sans-serif, system-ui, sans-serif;--measure:36rem;--step-0:.92rem;--step-1:1.08rem;--step-2:1.4rem;--step-3:2.3rem}@media (prefers-color-scheme:dark){:root{--page-bg:#2b2b28;--surface:#323230;--surface-2:#3a3a37;--rule:#4a4945;--rule-soft:#413f3c;--ink:#f0eee9;--body:#d8d4cc;--muted:#aaa49a;--faint:#948e84;--gold:#d7b45f;--gold-lt:#e2c47c;--clay:#d79068;--moss:#97b89e}}:root[data-theme=dark]{--page-bg:#2b2b28;--surface:#323230;--surface-2:#3a3a37;--rule:#4a4945;--rule-soft:#413f3c;--ink:#f0eee9;--body:#d8d4cc;--muted:#aaa49a;--faint:#948e84;--gold:#d7b45f;--gold-lt:#e2c47c;--clay:#d79068;--moss:#97b89e}:root[data-theme=light]{--page-bg:#fff;--surface:#faf9f6;--surface-2:#f4f2ed;--rule:#e6e3db;--rule-soft:#efede7;--ink:#2f2c27;--body:#57534b;--muted:#837d72;--faint:#9a948a;--gold:#9a7b2c;--gold-lt:#b99a4e;--clay:#a05a3c;--moss:#5b7d63}.n-label{font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);font-size:.64rem;font-weight:600}.n-num{font-variant-numeric:lining-nums tabular-nums;color:var(--gold)}.n-plate{border:1px solid var(--rule);background:var(--surface);grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));display:grid}.n-plate-cell{text-align:center;border-right:1px solid var(--rule);flex-direction:column;align-items:center;gap:.4rem;padding:1.5rem .7rem 1.3rem;display:flex}.n-plate-cell:last-child{border-right:0}.n-plate-numeral{color:var(--gold);font-variant-numeric:lining-nums tabular-nums;font-size:clamp(2rem,5vw,2.9rem);line-height:.9}.n-plate-master{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--clay);font-size:.58rem}.n-plate-note{color:var(--muted);max-width:14ch;font-size:.78rem}.n-card{background:var(--surface);border:1px solid var(--rule);grid-template-columns:4.75rem 1fr;align-items:start;gap:0 1.5rem;padding:1.2rem 1.4rem;display:grid}.n-card-number{text-align:right;color:var(--gold);font-variant-numeric:lining-nums tabular-nums;font-size:2.2rem;line-height:.95}.n-card.is-caution .n-card-number{color:var(--clay)}.n-card.is-favour .n-card-number{color:var(--moss)}.n-card-reduced{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);text-align:right;padding-top:.45rem;font-size:.58rem;display:block}.n-card-body{flex-direction:column;gap:.35rem;display:flex}.n-card-title{font-size:var(--step-1);color:var(--ink);margin:0;font-style:italic}.n-card-body p{font-size:var(--step-0);margin:0}.n-card-reads{color:var(--muted);font-size:.8rem;font-style:italic}.n-loshu{aspect-ratio:1;border:1px solid var(--rule);background:var(--surface);flex:none;grid-template:repeat(3,1fr)/repeat(3,1fr);width:min(15.5rem,100%);display:grid;position:relative}.n-loshu-cell{border-right:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);letter-spacing:.05em;color:var(--ink);font-variant-numeric:lining-nums tabular-nums;justify-content:center;align-items:center;font-size:1.3rem;display:flex}.n-loshu-cell:nth-child(3n){border-right:0}.n-loshu-cell:nth-child(n+7){border-bottom:0}.n-loshu-cell.is-absent{color:var(--rule);font-size:.95rem}.n-strike{background:var(--gold-lt);opacity:.8;pointer-events:none;position:absolute}.n-strike-row{width:100%;height:1.5px;left:0}.n-strike-col{width:1.5px;height:100%;top:0}.n-strike-diag{width:141.5%;height:1.5px;top:calc(50% - .75px);left:-20.75%}.n-compass{aspect-ratio:1;border:1px solid var(--rule);background:var(--surface);flex:none;grid-template:repeat(3,1fr)/repeat(3,1fr);width:min(15.5rem,100%);display:grid}.n-dir{text-align:center;border-right:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);flex-direction:column;justify-content:center;align-items:center;gap:.15rem;padding:.3rem .2rem;display:flex}.n-dir:nth-child(3n){border-right:0}.n-dir:nth-child(n+7){border-bottom:0}.n-dir b{font-size:1rem;font-weight:400;font-family:var(--sans);letter-spacing:.08em;color:var(--muted)}.n-dir span{font-size:.6rem;font-family:var(--sans);letter-spacing:.05em;color:var(--faint);line-height:1.3}.n-dir.is-good{background:var(--surface-2)}.n-dir.is-good b{color:var(--gold)}.n-dir.is-good span{color:var(--gold-lt)}.n-dir.is-bad b{color:var(--clay);opacity:.75}.n-dir.is-core b{font-family:var(--serif);color:var(--gold);letter-spacing:0;font-size:1.9rem}.n-figure{flex-wrap:wrap;align-items:flex-start;gap:1.75rem 2.5rem;display:flex}.n-read{flex-direction:column;flex:15rem;gap:.9rem;display:flex}.n-read-item{font-size:var(--step-0);flex-direction:column;gap:.2rem;display:flex}.n-read-item strong{color:var(--ink);font-weight:400}.n-read-item .n-label{color:var(--gold)}.n-read-item.is-absent .n-label{color:var(--clay)}*{box-sizing:border-box}body{background:var(--page-bg);color:var(--body);font-family:var(--serif);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.62}.s-shell{grid-template-columns:20rem 1fr;min-height:100vh;display:grid}.s-side{border-right:1px solid var(--rule);background:var(--surface);flex-direction:column;gap:1.75rem;height:100vh;padding:1.75rem 1.5rem;display:flex;position:sticky;top:0;overflow-y:auto}.s-brand .n-label{color:var(--gold)}.s-brand-sub{color:var(--muted);margin:.3rem 0 0;font-size:.85rem;font-style:italic}.s-form{flex-direction:column;gap:1rem;display:flex}.s-field{flex-direction:column;gap:.3rem;display:flex}.s-field input,.s-field select{font-family:var(--serif);color:var(--ink);background:var(--page-bg);border:1px solid var(--rule);border-radius:0;width:100%;padding:.5rem .6rem;font-size:.95rem}.s-field input:focus-visible,.s-field select:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.s-hint{color:var(--faint);font-size:.75rem;font-style:italic}.s-nav{flex-direction:column;gap:.15rem;margin-top:auto;display:flex}.s-nav-item{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;text-align:left;color:var(--muted);cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;padding:.6rem .8rem;font-size:.72rem}.s-nav-item:hover{color:var(--ink);background:var(--surface-2)}.s-nav-item.is-active{color:var(--gold);border-left-color:var(--gold);background:var(--surface-2)}.s-nav-item:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.s-main{flex-direction:column;gap:2.5rem;min-width:0;max-width:56rem;padding:3rem 2.5rem 5rem;display:flex}.s-head{flex-direction:column;gap:.5rem;display:flex}.s-head h1{color:var(--ink);letter-spacing:-.012em;margin:0;font-size:clamp(1.9rem,4vw,2.6rem);font-weight:400}.s-vitals{color:var(--muted);flex-wrap:wrap;gap:.5rem;font-size:.9rem;font-style:italic;display:flex}.s-section{flex-direction:column;gap:1.15rem;display:flex}.s-section h2{font-size:var(--step-2);color:var(--ink);letter-spacing:-.008em;margin:0;font-weight:400}.s-cards{flex-direction:column;gap:.8rem;display:flex}.s-note{color:var(--muted);max-width:var(--measure);margin:0;font-size:.9rem}.s-empty{color:var(--muted);font-style:italic}.s-chips{flex-wrap:wrap;gap:.5rem;display:flex}.s-chip{border:1px solid var(--rule);background:var(--surface);padding:.4rem .9rem}.s-chip b{color:var(--gold);font-variant-numeric:lining-nums tabular-nums;font-size:1.2rem;font-weight:400}.s-verdict{border-left:2px solid var(--rule);background:var(--surface);padding:.8rem 1.1rem;font-size:.95rem}.s-verdict.is-warn{border-left-color:var(--clay);color:var(--ink)}.s-verdict.is-ok{border-left-color:var(--moss);color:var(--ink)}.s-problems{color:var(--clay);flex-direction:column;gap:.3rem;margin:0;padding-left:1.1rem;font-size:.9rem;display:flex}.s-table{border-collapse:collapse;width:100%;font-size:.92rem}.s-table th{text-align:left;font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--rule);padding:.5rem .75rem;font-size:.62rem;font-weight:600}.s-table td{border-bottom:1px solid var(--rule-soft);vertical-align:baseline;padding:.6rem .75rem}.s-table tr:hover td{background:var(--surface)}.s-strong{color:var(--ink);font-size:1.02rem}@media (width<=56rem){.s-shell{grid-template-columns:1fr}.s-side{border-right:0;border-bottom:1px solid var(--rule);height:auto;position:static}.s-nav{flex-flow:wrap;margin-top:0}.s-nav-item{border-bottom:2px solid #0000;border-left:0}.s-nav-item.is-active{border-left:0;border-bottom-color:var(--gold)}.s-main{padding:2rem 1.25rem 4rem}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.s-btn{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--page-bg);background:var(--gold);border:1px solid var(--gold);cursor:pointer;padding:.6rem 1.1rem;font-size:.7rem}.s-btn:hover{background:var(--gold-lt);border-color:var(--gold-lt)}.s-btn:disabled{opacity:.4;cursor:default}.s-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.s-btn.is-wide{width:100%}.s-btn.is-quiet{color:var(--muted);border-color:var(--rule);background:0 0}.s-btn.is-quiet:hover{color:var(--ink);background:var(--surface-2)}.s-sub{font-size:var(--step-1);color:var(--ink);margin:.5rem 0 0;font-weight:400}.s-dim{color:var(--faint)}.s-remedy-block{border-top:1px solid var(--rule-soft);margin-top:1.1rem;padding-top:.9rem}.s-remedy-block:first-of-type{border-top:0;padding-top:0}.s-rules{font-size:var(--step-0);color:var(--body);flex-direction:column;gap:.35rem;margin:.5rem 0 0 1.2rem;display:flex}.s-verdict.is-stop{border-left-color:var(--clay);background:var(--surface-2)}.s-verdict.is-good{border-left-color:var(--moss)}.s-ask-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.s-deep{cursor:pointer;align-items:center;gap:.45rem;display:flex}.s-deep input{accent-color:var(--gold)}.s-thread{background:var(--surface);border:1px solid var(--rule);flex-direction:column;gap:1.4rem;min-height:8rem;max-height:30rem;padding:1.25rem;display:flex;overflow-y:auto}.s-msg{flex-direction:column;gap:.35rem;display:flex}.s-msg .n-label{color:var(--faint)}.s-msg.is-user .n-label{color:var(--gold)}.s-msg-text{white-space:pre-wrap;color:var(--body);font-size:.95rem}.s-msg.is-user .s-msg-text{color:var(--ink)}.s-msg-error{color:var(--clay);font-size:.88rem}.s-msg.is-failed .s-msg-text,.s-msg.is-cancelled .s-msg-text{opacity:.6}.s-composer{flex-direction:column;gap:.6rem;display:flex}.s-composer textarea{font-family:var(--serif);color:var(--ink);background:var(--page-bg);border:1px solid var(--rule);resize:vertical;width:100%;padding:.7rem .8rem;font-size:.98rem;line-height:1.55}.s-composer textarea:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.s-composer-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.s-pair-form{background:var(--surface);border:1px solid var(--rule);flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;padding:1.1rem 1.25rem;display:flex}.s-pair-form .s-field{flex:12rem}.s-clients{flex-direction:column;gap:.6rem;display:flex}.s-clients-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.s-clients-head .n-label{color:var(--gold)}.s-btn.is-small{padding:.3rem .6rem;font-size:.6rem}.s-client-list{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.s-client{text-align:left;cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;flex-direction:column;gap:.1rem;width:100%;padding:.5rem .7rem;display:flex}.s-client:hover{background:var(--surface-2)}.s-client.is-active{border-left-color:var(--gold);background:var(--surface-2)}.s-client:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}.s-client-name{color:var(--ink);font-size:.98rem}.s-client-meta{color:var(--faint);font-variant-numeric:tabular-nums;font-size:.72rem}.s-client.is-broken{border-left-color:var(--clay);cursor:default}.s-client.is-broken .s-client-name{color:var(--clay)}.s-save-row{flex-direction:column;gap:.4rem;display:flex}.s-save-state{margin:0;font-size:.75rem}.s-save-state.is-ok{color:var(--moss)}.s-save-state.is-pending{color:var(--muted)}.s-save-state.is-error{color:var(--clay)}.s-save-state.is-conflict{color:var(--clay);font-style:italic}.s-field textarea{font-family:var(--serif);color:var(--ink);background:var(--page-bg);border:1px solid var(--rule);resize:vertical;width:100%;padding:.5rem .6rem;font-size:.92rem;line-height:1.5}.s-field textarea:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.s-save-warn{color:var(--clay);margin:0;font-size:.78rem;line-height:1.45}.s-cal-head{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.s-cal-month{text-align:center;min-width:10rem;font-weight:400;font-size:var(--step-1);color:var(--ink)}.s-cal{border-top:1px solid var(--rule);border-left:1px solid var(--rule);grid-template-columns:repeat(7,minmax(0,1fr));max-width:34rem;display:grid}.s-cal-dow{text-align:center;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:.4rem .5rem}.s-cal-day{border-right:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);font-variant-numeric:lining-nums tabular-nums;flex-direction:column;align-items:center;gap:.1rem;padding:.45rem .3rem .5rem;display:flex}.s-cal-day.is-blank{background:var(--surface)}.s-cal-date{color:var(--faint);font-size:.72rem}.s-cal-pd{color:var(--muted);font-size:1.15rem;line-height:1.1}.s-cal-day.is-good{background:var(--surface-2)}.s-cal-day.is-good .s-cal-pd{color:var(--moss)}.s-cal-day.is-today{box-shadow:inset 0 0 0 1px var(--gold)}@media (width<=56rem){.s-field input,.s-field select,.s-field textarea,.s-composer textarea{font-size:16px}}@media (width<=30rem){.s-table{-webkit-overflow-scrolling:touch;white-space:nowrap;display:block;overflow-x:auto}.s-table td:first-child{white-space:normal;min-width:9rem}.s-btn{min-height:44px}.s-btn.is-small{min-height:40px;padding:.45rem .7rem;font-size:.66rem}.s-nav-item{align-items:center;min-height:44px;display:flex}.s-main{padding:1.5rem 1rem 3.5rem}.s-side{padding:1.25rem 1rem}}.s-history{flex-direction:column;gap:.4rem;display:flex}.s-history-sitting{border-top:1px solid var(--rule-soft)}.s-history-sitting:first-of-type{border-top:0}.s-history-head{text-align:left;cursor:pointer;width:100%;min-height:44px;color:inherit;font:inherit;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;padding:.85rem 0;display:flex}.s-history-head:hover .s-history-date{color:var(--gold)}.s-history-date{font-size:var(--step-0);color:var(--ink)}.s-history-meta{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:.78rem}.s-history-body{max-width:var(--measure);flex-direction:column;gap:1.1rem;padding:0 0 1.4rem;display:flex}.s-history-notes{border-left:2px solid var(--gold);flex-direction:column;gap:.35rem;padding-left:.9rem;display:flex}.s-history-exchange{flex-direction:column;gap:.6rem;display:flex}.s-report{max-width:var(--measure);flex-direction:column;gap:1rem;display:flex}.s-report-actions{gap:.5rem;display:flex}.s-report-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.s-report-row{border-top:1px solid var(--rule-soft);flex-direction:column;gap:.15rem;padding:.7rem 0;display:flex}.s-report-row:first-child{border-top:0}.s-report-pick{cursor:pointer;align-items:center;gap:.6rem;min-height:32px;display:flex}.s-report-pick input{width:1.05rem;height:1.05rem;accent-color:var(--gold);cursor:pointer}.s-report-label{font-size:var(--step-0);color:var(--ink)}.s-report-note{color:var(--muted);padding-left:1.65rem;font-size:.85rem}.s-report-row.is-unavailable .s-report-label,.s-report-row.is-unavailable .s-report-note{color:var(--faint)}.s-report-row.is-unavailable .s-report-pick{cursor:default}.s-report-why{letter-spacing:.06em;text-transform:uppercase;color:var(--clay);font-size:.72rem}.s-report-open{margin-top:.4rem}.s-domains{max-width:var(--measure);flex-direction:column;gap:1rem;display:flex}.s-domain-list{margin:0;padding:0;list-style:none}.s-domain{border-top:1px solid var(--rule-soft)}.s-domain:first-child{border-top:0}.s-domain-head{text-align:left;cursor:pointer;width:100%;min-height:44px;color:inherit;font:inherit;background:0 0;border:0;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem .75rem;padding:.8rem 0;display:flex}.s-domain-head:hover .s-domain-label{color:var(--gold)}.s-domain-label{font-size:var(--step-0);color:var(--ink)}.s-domain-count{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-size:.72rem}.s-domain-body{flex-direction:column;gap:1rem;padding:0 0 1.3rem;display:flex}.s-domain-item{flex-direction:column;gap:.3rem;display:flex}.s-domain-caveat{border-left:2px solid var(--clay);color:var(--muted);margin:0;padding-left:.9rem;font-size:.88rem}.s-domain-judged{color:var(--clay);margin:0;font-size:.82rem}.s-domain-gaps{flex-direction:column;gap:.7rem;margin-top:.5rem;display:flex}.s-domain-gap-body{flex-direction:column;gap:.7rem;display:flex}.s-prep{max-width:var(--measure);flex-direction:column;gap:1.3rem;display:flex}.s-prep-block{flex-direction:column;gap:.4rem;display:flex}.s-prep-block .n-label{color:var(--faint)}.s-prep-asks{flex-direction:column;gap:.7rem;margin:0;padding:0;list-style:none;display:flex}.s-prep-asks li{border-left:2px solid var(--gold);flex-direction:column;gap:.15rem;padding-left:.9rem;display:flex}.s-prep-asks strong{font-size:var(--step-0);color:var(--ink)}.s-prep-asks span{color:var(--muted);font-size:.87rem}.s-sitting{max-width:var(--measure);flex-direction:column;gap:1rem;display:flex}.s-sitting-provisional{border-left:2px solid var(--clay);background:var(--surface-2);color:var(--muted);margin:0;padding:.75rem .9rem;font-size:.87rem}.s-sitting-provisional code{font-size:.85em}.s-sitting-list{margin:0;padding:0;list-style:none}.s-sitting-step{border-top:1px solid var(--rule-soft);flex-direction:column;gap:.2rem;padding:.7rem 0;display:flex}.s-sitting-step:first-child{border-top:0}.s-sitting-step .s-btn{align-self:flex-start;margin-top:.35rem}.s-sitting-pick{cursor:pointer;align-items:center;gap:.6rem;min-height:32px;display:flex}.s-sitting-pick input{width:1.05rem;height:1.05rem;accent-color:var(--gold);cursor:pointer}.s-sitting-label{font-size:var(--step-0);color:var(--ink)}.s-sitting-step.is-done .s-sitting-label{color:var(--muted)}.s-sitting-recorded{letter-spacing:.06em;text-transform:uppercase;color:var(--moss);font-size:.72rem}.s-sitting-note{color:var(--muted);padding-left:1.65rem;font-size:.85rem}
