.stack{display:flex;flex-direction:column;gap:20px}.stack-sm{gap:12px}.stack-lg{gap:28px}.measure{max-width:760px}.measure-lg{max-width:980px}.sect{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.sect-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--border)}.sect-head-plain{border-bottom:none;padding-bottom:4px}.sect-heading{min-width:0}.sect-title{font-size:13px;font-weight:700;color:var(--text-primary);letter-spacing:0}.sect-desc{font-size:12px;color:var(--text-secondary);line-height:1.5;margin-top:3px;max-width:62ch}.sect-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.sect-body{padding:16px}.sect-body-tight{padding:12px 16px}.sect-list{display:flex;flex-direction:column}.sect-foot{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-secondary)}.sect-active{border-color:var(--text-primary)}.frow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);align-items:start;gap:12px 20px;padding:14px 16px}.frow+.frow{border-top:1px solid var(--border-subtle)}.frow-label{min-width:0;padding-top:7px}.frow-title{display:block;font-size:13px;font-weight:600;color:var(--text-primary)}.frow-hint{display:block;font-size:12px;color:var(--text-secondary);line-height:1.5;margin-top:2px;max-width:58ch}.frow-control{min-width:0}.frow-wide{grid-template-columns:minmax(0,1fr)}.frow-wide .frow-label{padding-top:0}@media (max-width:720px){.frow{grid-template-columns:minmax(0,1fr)}.frow-label{padding-top:0}}.srow{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;cursor:pointer}.srow+.srow{border-top:1px solid var(--border-subtle)}.srow-text{min-width:0}.srow-title{display:block;font-size:13px;font-weight:600;color:var(--text-primary)}.srow-hint{display:block;font-size:12px;color:var(--text-secondary);line-height:1.5;margin-top:2px;max-width:62ch}.lrow{display:flex;align-items:center;gap:12px;padding:10px 16px;min-height:48px;transition:background var(--dur) ease}.lrow+.lrow{border-top:1px solid var(--border-subtle)}.lrow-main{flex:1;min-width:0}.lrow-title{font-size:13px;font-weight:600;color:var(--text-primary)}.lrow-sub,.lrow-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lrow-sub{font-size:12px;color:var(--text-secondary);margin-top:1px}.lrow-value{font-size:13px;color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right;min-width:88px}.lrow-lead,.lrow-value{flex-shrink:0;font-weight:700}.lrow-lead{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-secondary);font-size:11px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.lrow-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.lrow-off .lrow-sub,.lrow-off .lrow-title,.lrow-off .lrow-value{color:var(--text-faint)}@media (hover:hover) and (pointer:fine){.lrow-actions{opacity:.5;transition:opacity var(--dur) ease}.lrow-actions:focus-within,.lrow:hover .lrow-actions{opacity:1}.lrow:hover{background:var(--hover)}}.lrow-actions .btn-icon{width:30px;height:30px}.lrow-actions .btn-icon.is-danger:hover{color:var(--danger)}.lrow-link{width:100%;text-align:left;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.savebar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:4px;padding:12px 16px;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(calc(100% + 20px));opacity:0;pointer-events:none;transition:transform var(--dur-slow) var(--ease-out),opacity var(--dur-slow) var(--ease-out)}.savebar[data-open=true]{transform:translateY(0);opacity:1;pointer-events:auto}.savebar-text{font-size:13px;font-weight:600;color:var(--text-primary);min-width:0}.savebar-sub{display:block;font-size:12px;font-weight:400;color:var(--text-secondary);margin-top:1px}.savebar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.saved-hint{color:var(--success)}.save-error,.saved-hint{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600}.save-error{color:var(--danger)}.menu-wrap{position:relative}.menu{position:absolute;top:calc(100% + 5px);right:0;z-index:40;min-width:208px;padding:4px;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:0 6px 20px rgba(0,0,0,.1);transform-origin:top right;animation:menu-in var(--dur) var(--ease-out) both}.menu-left{right:auto;left:0;transform-origin:top left}@keyframes menu-in{0%{opacity:0;transform:scale(.97) translateY(-2px)}to{opacity:1;transform:scale(1) translateY(0)}}.menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:none;border-radius:var(--radius);background:none;font-size:13px;font-weight:500;color:var(--text-primary);text-align:left;cursor:pointer;transition:background var(--dur-fast) ease,color var(--dur-fast) ease}.menu-item:hover{background:var(--hover)}.menu-item:disabled{color:var(--text-faint);pointer-events:none}.menu-item.is-danger{color:var(--danger)}.menu-item.is-danger:hover{background:var(--danger-bg)}.menu-item-hint{margin-left:auto;font-size:11px;color:var(--text-faint);font-weight:400}.menu-sep{height:1px;margin:4px 0;background:var(--border)}.menu-label{padding:7px 10px 4px;font-size:11px;font-weight:700;color:var(--text-faint)}.kv{display:block}.kv-row{display:grid;grid-template-columns:116px minmax(0,1fr);gap:4px 12px;align-items:baseline;padding:5px 0}.kv-key{font-size:12.5px;color:var(--text-secondary);white-space:nowrap}.kv-val{font-size:13px;font-weight:600;color:var(--text-primary);min-width:0;overflow-wrap:anywhere}.kv-val-muted{font-weight:400;color:var(--text-secondary)}.kv-empty{color:var(--text-faint);font-weight:400}.kv-wide .kv-row{grid-template-columns:152px minmax(0,1fr)}@media (max-width:560px){.kv-row,.kv-wide .kv-row{grid-template-columns:minmax(0,1fr);gap:1px}.kv-key{font-size:12px}}.glance{display:flex;align-items:stretch;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);overflow:hidden}.glance-item{flex:1 1 132px;min-width:0;padding:11px 14px}.glance-item+.glance-item{border-left:1px solid var(--border-subtle)}.glance-label{display:block;font-size:11.5px;color:var(--text-secondary)}.glance-value{display:block;font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em;margin-top:2px;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glance-value-sm{font-size:13px}.glance-value.is-danger{color:var(--danger)}.glance-value.is-success{color:var(--success)}@media (max-width:640px){.glance-item{flex-basis:50%}.glance-item:nth-child(odd){border-left:none}.glance-item:nth-child(n+3){border-top:1px solid var(--border-subtle)}}.meter-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:5px}.meter-label{font-size:12.5px;color:var(--text-primary)}.meter-frac{font-size:12px;font-weight:700;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}.meter{height:5px;background:#e8e8e8;overflow:hidden}.meter,.meter-fill{border-radius:999px}.meter-fill{height:100%;background:var(--text-primary);transition:width var(--dur-slow) var(--ease-out)}.meter-fill.is-done{background:var(--success)}.meter-item+.meter-item{margin-top:12px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{min-height:32px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:background var(--dur) ease,border-color var(--dur) ease,color var(--dur) ease,transform var(--dur-fast) ease}.chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.chip:active{transform:scale(.97)}.chip.is-active{background:var(--text-primary);border-color:var(--text-primary);color:#ffffff}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pickcard{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);text-align:left;cursor:pointer;transition:background var(--dur) ease,border-color var(--dur) ease,transform var(--dur-fast) ease}.pickcard:hover{border-color:var(--border-strong)}.pickcard:active{transform:scale(.99)}.pickcard.is-active{border-color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--text-primary)}.pickcard-title{font-size:13.5px;font-weight:700;color:var(--text-primary)}.pickcard-sub{font-size:12px;color:var(--text-secondary);line-height:1.45}.pickcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.tick{width:18px;height:18px;flex-shrink:0;border-radius:var(--radius-sm);border:1.5px solid var(--border-strong);background:var(--bg-panel);display:inline-flex;align-items:center;justify-content:center;color:transparent;cursor:pointer;transition:background var(--dur) ease,border-color var(--dur) ease,color var(--dur) ease}.tick.is-on{background:var(--success);border-color:var(--success);color:#ffffff}.tick-row{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;transition:background var(--dur-fast) ease}.tick-row+.tick-row{border-top:1px solid var(--border-subtle)}.tick-row:hover{background:var(--hover)}.tick-label{font-size:13px;min-width:0}.tick-label,.tick-row .tick.is-on+.tick-label{color:var(--text-primary)}.tick-off .tick-label{color:var(--text-secondary)}.fsect{display:grid;grid-template-columns:208px minmax(0,1fr);gap:24px;padding:22px 0}.fsect+.fsect{border-top:1px solid var(--border-subtle)}.fsect-side{min-width:0}.fsect-title{font-size:14px;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.fsect-desc{font-size:12.5px;color:var(--text-secondary);line-height:1.55;margin-top:4px}.fsect-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;align-content:start;min-width:0}.fsect-fields-1{grid-template-columns:minmax(0,1fr)}.field-full{grid-column:1/-1}.form-field[data-hidden=true],.fsect[data-hidden=true]{display:none}form[data-guided=true] .fsect{grid-template-columns:minmax(0,1fr);gap:0;padding:0;border-top:none}form[data-guided=true] .fsect-side{display:none}form[data-guided=true]{max-width:680px;margin-inline:auto;padding-top:12px;padding-bottom:24px}.steps-center{justify-content:center}.ask{display:flex;align-items:flex-start;gap:12px}.ask-icon{width:34px;height:34px;flex-shrink:0;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-panel);color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center}.ask-text{min-width:0}.ask-question{font-size:19px;font-weight:700;letter-spacing:-.025em;color:var(--text-primary);line-height:1.25}.ask-hint{font-size:13px;color:var(--text-secondary);line-height:1.55;margin-top:4px;max-width:64ch}@media (max-width:560px){.ask-question{font-size:17px}}@media (max-width:900px){.fsect{grid-template-columns:minmax(0,1fr);gap:14px}}@media (max-width:560px){.fsect-fields{grid-template-columns:minmax(0,1fr)}}.dialog-md{width:100%;max-width:560px}.dialog-lg{width:100%;max-width:720px}.dialog-body{padding:16px;overflow-y:auto;max-height:min(68vh,620px)}.note{font-size:12.5px;color:var(--text-secondary);line-height:1.6;max-width:76ch}.note strong{color:var(--text-primary);font-weight:600}.blank{padding:28px 16px;text-align:center}.blank-title{font-size:13px;font-weight:600;color:var(--text-primary)}.blank-sub{display:block;font-size:12.5px;color:var(--text-secondary);margin-top:4px;line-height:1.55}.addrow{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg-secondary)}.addrow .form-input,.addrow .form-select{flex:1;min-width:0}.addbtn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:11px 16px;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:none;font-size:13px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:background var(--dur) ease,border-color var(--dur) ease,color var(--dur) ease}.addbtn:hover{border-color:var(--text-primary);color:var(--text-primary);background:var(--bg-panel)}.addbtn:active{transform:scale(.995)}.count{font-size:12px;font-weight:500;color:var(--text-secondary);font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}.colorpick{display:flex;align-items:center;gap:8px}.colorpick input[type=color]{width:38px;height:34px;flex-shrink:0;padding:2px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);cursor:pointer}.colorpick .form-input{width:106px;flex-shrink:0}.tbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:44px;padding:6px 16px;border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0}.tbar-spacer{flex:1;min-width:8px}.select-sm{width:auto;min-height:30px;padding:4px 30px 4px 9px;font-size:12.5px}.enter-hint{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text-faint);white-space:nowrap}@media (max-width:560px){.enter-hint{display:none}}.kbd{gap:3px;padding:1px 5px;border:solid var(--border);border-width:1px 1px 2px;border-radius:var(--radius-sm);font-size:10.5px;font-family:inherit}.avatar,.kbd{display:inline-flex;align-items:center;background:var(--bg-secondary);font-weight:700;color:var(--text-secondary)}.avatar{width:38px;height:38px;flex-shrink:0;border-radius:50%;justify-content:center;border:1px solid var(--border);font-size:14px;letter-spacing:-.01em}.avatar-lg{width:64px;height:64px;font-size:22px}.avatar-sm{width:28px;height:28px;font-size:11px}.plate{display:inline-flex;align-items:stretch;height:20px;border:1px solid var(--text-primary);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-panel);vertical-align:-4px}.plate-eu{padding:0 4px;background:var(--text-primary);color:#ffffff;font-size:9px}.plate-eu,.plate-num{display:flex;align-items:center;font-weight:700}.plate-num{padding:0 6px;font-size:11.5px;letter-spacing:.04em;font-variant-numeric:tabular-nums}.bignum,.plate-num{color:var(--text-primary)}.bignum{font-size:28px;font-weight:700;letter-spacing:-.025em;font-variant-numeric:tabular-nums;line-height:1.15}.portal{--portal-header-bg:var(--bg-panel);--portal-header-fg:var(--text-primary);--portal-accent:var(--text-primary);min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-base);color:var(--text-primary)}.portal-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;padding:0 32px;background:var(--portal-header-bg);color:var(--portal-header-fg);border-bottom:1px solid var(--border)}.portal-top[data-dark=true]{border-bottom-color:rgba(255,255,255,.12)}.portal-top-brand{display:flex;align-items:center;gap:12px;min-width:0}.portal-top-logo{height:20px;width:auto}.portal-top-div{width:1px;height:18px;background:currentColor;opacity:.2}.portal-top-name{font-size:13px;font-weight:700;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-top-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.portal-top-user{font-size:13px;font-weight:500;opacity:.75}.portal-signout{display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:var(--radius);border:1px solid;background:none;color:inherit;font-size:12px;font-weight:600;cursor:pointer;opacity:.7;transition:opacity var(--dur) ease,transform var(--dur-fast) ease}.portal-signout:hover{opacity:1}.portal-signout:active{transform:scale(.97)}.portal-main{flex:1;width:100%;max-width:1140px;margin:0 auto;padding:28px 32px 36px;min-width:0}.portal-greet{margin-bottom:22px}.portal-greet-title{font-size:22px;font-weight:700;letter-spacing:-.025em}.portal-greet-sub{font-size:13.5px;color:var(--text-secondary);margin-top:3px}.portal-greet-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}.portal-cols{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:20px;align-items:start}.portal-col{display:flex;flex-direction:column;gap:20px;min-width:0}.portal-accentbar{width:2px;align-self:stretch;min-height:26px;border-radius:2px;background:var(--portal-accent);flex-shrink:0}.portal-accentbar-dim{background:var(--border-strong)}.portal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:1140px;width:100%;margin:0 auto;padding:16px 32px 24px;font-size:12px;color:var(--text-secondary);border-top:1px solid var(--border)}.portal-foot a{color:inherit;text-decoration:none}.portal-foot a:hover{color:var(--text-primary);text-decoration:underline}.portal-foot-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.portal-foot-dot{color:var(--text-faint)}.topicgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}.topicrow{display:flex;align-items:flex-start;gap:9px;padding:4px 0;min-width:0}.topicrow-text{font-size:12.5px;line-height:1.45;color:var(--text-secondary);min-width:0}.topicrow-text strong{font-weight:700;margin-right:4px}.topicrow-text strong,.topicrow.is-covered .topicrow-text{color:var(--text-primary)}@media (max-width:1000px){.portal-cols,.topicgrid{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){.portal-top{padding:0 16px}.portal-main{padding:20px 16px 28px}.portal-foot{padding:16px}.portal-greet-title{font-size:19px}.portal-top-user{display:none}}.lrow-wrap{flex-wrap:wrap;align-items:flex-start}.lrow-time{flex-shrink:0;width:54px;display:flex;flex-direction:column;padding-top:1px}.lrow-day{font-size:12.5px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.lrow-clock{font-size:11.5px;font-variant-numeric:tabular-nums;margin-top:1px}.lrow-clock,.lrow-note{color:var(--text-secondary)}.lrow-note{flex-basis:100%;margin:6px 0 0 66px;padding-left:10px;border-left:2px solid var(--border);font-size:12.5px;line-height:1.5;overflow-wrap:anywhere}.lrow-note strong{color:var(--text-primary);font-weight:600}@media (max-width:560px){.lrow-note{margin-left:0}}.steps{display:flex;align-items:stretch;gap:0;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.steps::-webkit-scrollbar{display:none}.step{display:inline-flex;align-items:center;gap:7px;padding:11px 14px;border:none;border-bottom:2px solid transparent;background:none;font-size:13px;font-weight:600;color:var(--text-faint);white-space:nowrap;cursor:pointer;transition:color var(--dur) ease,border-color var(--dur) ease}.step:hover:not(:disabled){color:var(--text-secondary)}.step:disabled{cursor:default}.step-mark{width:18px;height:18px;flex-shrink:0;border-radius:50%;border:1.5px solid;display:inline-flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}.step-label{min-width:0}.step.is-done{color:var(--text-secondary)}.step.is-done .step-mark{background:var(--text-primary);border-color:var(--text-primary);color:#ffffff}.step.is-current{color:var(--text-primary);border-bottom-color:var(--text-primary)}.step.is-current .step-mark{border-color:var(--text-primary)}@media (max-width:720px){.step .step-label{display:none}.step.is-current .step-label{display:inline}.step{padding:11px 10px}}.review-row{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:12px;align-items:baseline;width:100%;padding:9px 16px;border:none;background:none;text-align:left;cursor:pointer;transition:background var(--dur-fast) ease}.review-row+.review-row{border-top:1px solid var(--border-subtle)}.review-row:hover{background:var(--hover)}.review-key{font-size:12.5px;color:var(--text-secondary)}.review-val{font-size:13px;font-weight:600;color:var(--text-primary);min-width:0;overflow-wrap:anywhere}.review-val.is-empty{font-weight:400;color:var(--text-faint)}.review-edit{font-size:12px;font-weight:600;color:var(--text-secondary)}@media (hover:hover) and (pointer:fine){.review-edit{opacity:0;transition:opacity var(--dur) ease}.review-row:focus-visible .review-edit,.review-row:hover .review-edit{opacity:1}}@media (max-width:560px){.review-row{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}.review-key{grid-column:1/-1}.review-edit{opacity:1}}@media (prefers-reduced-motion:reduce){.savebar{transform:none}.menu{animation:none}}