:root{--ip-desk:#EEF1F3;--ip-paper:#FFFFFF;--ip-paper-hi:#F7F9FB;--ip-well:#EFF3F6;--ip-ink:#17212B;--ip-ink-1:#273442;--ip-ink-2:#3F4D5C;--ip-ink-3:#586675;--ip-ink-4:#6F7B88;--ip-ink-5:#98A2AD;--ip-ink-6:#C3CAD2;--ip-ink-7:#E1E6EB;--ip-rule:#D3DAE1;--ip-rule-soft:#E6EBF0;--ip-rule-ink:#17212B;--ip-blue:#1F5E7A;--ip-blue-soft:#E2EEF4;--ip-green:#2F6B4F;--ip-green-soft:#E4F1EA;--ip-amber:#8A5A14;--ip-amber-soft:#F4E9D4;--ip-red:#A23D35;--ip-red-soft:#F4E4E1;--ip-font:"Inter",ui-sans-serif,system-ui,-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--ip-mono:ui-monospace,"SF Mono",Menlo,"Roboto Mono",Consolas,monospace;--ip-r-card:12px;--ip-r-box:8px;--ip-r-ctl:6px;--ip-r-pill:999px;--ip-hair:1px;--ip-ease:cubic-bezier(.165,.84,.44,1);--ip-fast:.12s;--ip-base:.22s;--ip-slow:.42s;--ip-scrim:rgba(28,28,26,.42);color-scheme:light}[data-theme=carbon]{--ip-desk:#111110;--ip-paper:#1A1A18;--ip-paper-hi:#232320;--ip-well:#131312;--ip-ink:#EDEBE4;--ip-ink-1:#D6D3CB;--ip-ink-2:#B8B5AC;--ip-ink-3:#9A968D;--ip-ink-4:#8B877E;--ip-ink-5:#6E6B64;--ip-ink-6:#4E4C47;--ip-ink-7:#35342F;--ip-rule:#3B3A35;--ip-rule-soft:#2A2A26;--ip-rule-ink:#EDEBE4;--ip-blue:#9FB4C9;--ip-blue-soft:#22303C;--ip-red:#C98A80;--ip-red-soft:#37241F;--ip-scrim:rgba(0,0,0,.62);color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--ip-desk);color:var(--ip-ink);font-family:var(--ip-font);font-size:14px;line-height:1.6;font-feature-settings:"cv05","ss01";-webkit-font-smoothing:antialiased;transition:background var(--ip-slow) var(--ip-ease),color var(--ip-slow) var(--ip-ease)}a{color:var(--ip-ink);text-decoration:none;border-bottom:1px solid var(--ip-ink-6);transition:border-color var(--ip-fast) var(--ip-ease)}a:hover{border-bottom-color:var(--ip-ink)}::selection{background:var(--ip-ink);color:var(--ip-paper)}:focus-visible{outline:1.5px solid var(--ip-ink);outline-offset:2px;border-radius:3px}svg{display:block}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ip-ink-6);border:3px solid transparent;background-clip:content-box;border-radius:var(--ip-r-pill)}::-webkit-scrollbar-thumb:hover{background:var(--ip-ink-4);background-clip:content-box}.ink-display{font-size:clamp(38px,5.4vw,64px);font-weight:800;line-height:.98;letter-spacing:-.032em;text-wrap:balance}.ink-h1{font-size:27px;font-weight:700;line-height:1.2;letter-spacing:-.018em;text-wrap:pretty}.ink-h2{font-size:19px;font-weight:700;line-height:1.3;letter-spacing:-.012em;text-wrap:pretty}.ink-h3{font-size:15px;font-weight:600;line-height:1.4;letter-spacing:-.006em}.ink-body{font-size:14px;font-weight:400;line-height:1.65;color:var(--ip-ink-2);text-wrap:pretty}.ink-lede{font-size:16px;font-weight:400;line-height:1.6;color:var(--ip-ink-2);text-wrap:pretty}.ink-note{font-size:12.5px;line-height:1.55;color:var(--ip-ink-4);text-wrap:pretty}.ink-label{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ip-ink-4);line-height:1.2}.ink-label--ink{color:var(--ip-ink)}.ink-src{font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ip-ink-4);line-height:1.4}.ink-num{font-family:var(--ip-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:-.01em}.ink-figure{font-size:34px;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.ink-code{font-family:var(--ip-mono);font-size:12px;background:var(--ip-well);padding:1px 5px;border-radius:4px;color:var(--ip-ink-1)}.ink-kbd{display:inline-block;font-family:var(--ip-mono);font-size:11px;font-weight:600;padding:2px 6px;min-width:22px;text-align:center;color:var(--ip-ink-2);border:var(--ip-hair) solid var(--ip-rule);border-bottom-width:2px;border-radius:5px;background:var(--ip-paper-hi)}.ink-quiet{color:var(--ip-ink-4)}.ink-strike{text-decoration:line-through;text-decoration-color:var(--ip-red);text-decoration-thickness:1.5px;color:var(--ip-ink-4)}.ink-rule{border:0;border-top:var(--ip-hair) solid var(--ip-rule);margin:0}.ink-rule--ink{border-top-color:var(--ip-rule-ink)}.ink-rule--dash{border-top-style:dashed;border-top-color:var(--ip-ink-6)}.ink-rule--v{width:var(--ip-hair);align-self:stretch;background:var(--ip-rule);border:0}.ink-ledger{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,var(--ip-rule-soft) 27px,var(--ip-rule-soft) 27.5px)}.ink-graph{background-color:var(--ip-well);background-image:linear-gradient(var(--ip-rule-soft) .5px,transparent .5px),linear-gradient(90deg,var(--ip-rule-soft) .5px,transparent .5px),linear-gradient(var(--ip-rule) .5px,transparent .5px),linear-gradient(90deg,var(--ip-rule) .5px,transparent .5px);background-size:8px 8px,8px 8px,48px 48px,48px 48px}.ink-dotgrid{background-color:var(--ip-well);background-image:radial-gradient(var(--ip-ink-6) .8px,transparent .8px);background-size:14px 14px}.ink-ticks{display:flex;align-items:flex-end;gap:3px;height:10px}.ink-ticks i{display:block;width:1px;height:4px;background:var(--ip-ink-6)}.ink-ticks i:nth-child(5n+1){height:9px;background:var(--ip-ink-4)}.ink-leader{flex:1;border-bottom:var(--ip-hair) dashed var(--ip-ink-6);transform:translateY(-4px)}.ink-card{background:var(--ip-paper);border-radius:var(--ip-r-card);padding:22px 24px;transition:background var(--ip-slow) var(--ip-ease)}.ink-card--ruled{box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.ink-card--ink{background:var(--ip-ink);color:var(--ip-paper)}.ink-card--ink .ink-label,.ink-card--ink .ink-body,.ink-card--ink .ink-note{color:var(--ip-ink-6)}.ink-panel{background:var(--ip-paper);border-radius:var(--ip-r-box);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.ink-well{background:var(--ip-well);border-radius:var(--ip-r-box)}.ink-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 0 10px;border-bottom:var(--ip-hair) solid var(--ip-rule);margin-bottom:14px}.ink-toolbar{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--ip-paper);border-radius:var(--ip-r-box);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);flex-wrap:wrap}.ink-toolbar--flush{border-radius:0;box-shadow:0 var(--ip-hair) 0 var(--ip-rule)}.ink-group{display:inline-flex;align-items:center;border-radius:var(--ip-r-ctl);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);overflow:hidden}.ink-group>*{border-radius:0!important;box-shadow:none!important}.ink-group>*+*{box-shadow:inset var(--ip-hair) 0 0 var(--ip-rule)!important}.ink-stack{display:flex;flex-direction:column;gap:10px}.ink-row{display:flex;align-items:center;gap:10px}.ink-spread{display:flex;align-items:center;justify-content:space-between;gap:12px}.ink-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:32px;padding:0 14px;font:600 13px/1 var(--ip-font);letter-spacing:-.005em;color:var(--ip-ink);background:transparent;border:0;border-radius:var(--ip-r-ctl);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--ip-fast) var(--ip-ease),color var(--ip-fast) var(--ip-ease),box-shadow var(--ip-fast) var(--ip-ease),opacity var(--ip-fast)}.ink-btn:hover:not(:disabled),.ink-btn.is-hover{background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-5)}.ink-btn:active:not(:disabled),.ink-btn.is-active{background:var(--ip-well);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-3)}.ink-btn:focus-visible,.ink-btn.is-focus{outline:1.5px solid var(--ip-ink);outline-offset:2px}.ink-btn:disabled,.ink-btn.is-disabled{color:var(--ip-ink-5);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);background:transparent;cursor:not-allowed}.ink-btn--solid{background:var(--ip-ink);color:var(--ip-paper);box-shadow:none}.ink-btn--solid:hover:not(:disabled),.ink-btn--solid.is-hover{background:var(--ip-ink-2);box-shadow:none}.ink-btn--solid:active:not(:disabled),.ink-btn--solid.is-active{background:var(--ip-ink-1);box-shadow:none}.ink-btn--solid:disabled,.ink-btn--solid.is-disabled{background:var(--ip-ink-6);color:var(--ip-paper);box-shadow:none}.ink-btn--quiet{box-shadow:none;color:var(--ip-ink-2)}.ink-btn--quiet:hover:not(:disabled),.ink-btn--quiet.is-hover{background:var(--ip-well);color:var(--ip-ink);box-shadow:none}.ink-btn--quiet:active:not(:disabled),.ink-btn--quiet.is-active{background:var(--ip-ink-7);box-shadow:none}.ink-btn--quiet:disabled,.ink-btn--quiet.is-disabled{box-shadow:none}.ink-btn--danger{color:var(--ip-red);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-red)}.ink-btn--danger:hover:not(:disabled),.ink-btn--danger.is-hover{background:var(--ip-red);color:var(--ip-paper);box-shadow:none}.ink-btn--danger:active:not(:disabled),.ink-btn--danger.is-active{background:var(--ip-red);color:var(--ip-paper);box-shadow:none;opacity:.82}.ink-btn--sm{height:25px;padding:0 9px;font-size:11.5px;gap:5px;border-radius:5px}.ink-btn--lg{height:40px;padding:0 20px;font-size:14.5px}.ink-btn--icon{width:32px;padding:0}.ink-btn--icon.ink-btn--sm{width:25px}.ink-btn[aria-pressed=true]{background:var(--ip-ink);color:var(--ip-paper);box-shadow:none}.ink-seg{display:inline-flex;padding:2px;background:var(--ip-well);border-radius:9px;gap:2px}.ink-seg button{height:26px;padding:0 12px;font:600 12px/1 var(--ip-font);color:var(--ip-ink-3);background:transparent;border:0;border-radius:7px;cursor:pointer;transition:background var(--ip-fast) var(--ip-ease),color var(--ip-fast) var(--ip-ease)}.ink-seg button:hover{color:var(--ip-ink)}.ink-seg button[aria-selected=true]{background:var(--ip-paper);color:var(--ip-ink);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.ink-field{display:block;width:100%;height:32px;padding:0 10px;font:500 13px/1 var(--ip-font);color:var(--ip-ink);background:transparent;border:0;border-radius:var(--ip-r-ctl);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background var(--ip-fast) var(--ip-ease),box-shadow var(--ip-fast) var(--ip-ease)}textarea.ink-field{height:auto;padding:9px 10px;line-height:1.55;resize:vertical;min-height:74px}.ink-field::placeholder{color:var(--ip-ink-5)}.ink-field:hover:not(:disabled):not(:focus),.ink-field.is-hover{box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-5)}.ink-field:focus,.ink-field.is-focus{outline:0;background:var(--ip-paper-hi);box-shadow:inset 0 0 0 1.5px var(--ip-ink)}.ink-field:disabled,.ink-field.is-disabled{color:var(--ip-ink-5);background:var(--ip-well);cursor:not-allowed}.ink-field.is-bad{box-shadow:inset 0 0 0 1.5px var(--ip-red)}.ink-field--num{font-family:var(--ip-mono);font-variant-numeric:tabular-nums;text-align:right}.ink-scrub{display:inline-flex;align-items:center;height:26px;border-radius:5px;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);overflow:hidden;background:var(--ip-paper)}.ink-scrub b{display:flex;align-items:center;padding:0 7px;height:100%;font:700 9.5px/1 var(--ip-font);letter-spacing:.14em;color:var(--ip-ink-4);background:var(--ip-well);cursor:ew-resize}.ink-scrub input{width:58px;min-width:0;height:100%;padding:0 7px;border:0;background:transparent;font:500 12px/1 var(--ip-mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--ip-ink)}.ink-scrub input:focus{outline:0;background:var(--ip-paper-hi)}.ink-scrub:focus-within{box-shadow:inset 0 0 0 1.5px var(--ip-ink)}.ink-switch{position:relative;display:inline-flex;width:38px;height:21px;flex:none;cursor:pointer}.ink-switch input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:inherit;z-index:1}.ink-switch i{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--ip-r-pill);background:transparent;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-5);transition:background var(--ip-base) var(--ip-ease),box-shadow var(--ip-base) var(--ip-ease)}.ink-switch i:after{content:"";position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:var(--ip-ink-4);transition:transform var(--ip-base) var(--ip-ease),background var(--ip-base) var(--ip-ease)}.ink-switch input:checked+i{background:var(--ip-ink);box-shadow:none}.ink-switch input:checked+i:after{transform:translate(17px);background:var(--ip-paper)}.ink-switch input:focus-visible+i{outline:1.5px solid var(--ip-ink);outline-offset:2px}.ink-switch input:disabled+i{opacity:.4;cursor:not-allowed}.ink-check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--ip-ink-1);-webkit-user-select:none;user-select:none}.ink-check input{position:absolute;opacity:0;width:0;height:0}.ink-check i{position:relative;width:15px;height:15px;flex:none;border-radius:3.5px;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-5);transition:background var(--ip-fast) var(--ip-ease),box-shadow var(--ip-fast) var(--ip-ease)}.ink-check--radio i{border-radius:50%}.ink-check i:after{content:"";position:absolute;left:4.5px;top:1px;width:4px;height:8px;border:solid var(--ip-paper);border-width:0 1.8px 1.8px 0;transform:rotate(42deg) scale(.4);opacity:0;transition:opacity var(--ip-fast) var(--ip-ease),transform var(--ip-fast) var(--ip-ease)}.ink-check--radio i:after{left:4px;top:4px;width:7px;height:7px;border:0;border-radius:50%;background:var(--ip-paper);transform:scale(.3)}.ink-check input:checked+i{background:var(--ip-ink);box-shadow:none}.ink-check input:checked+i:after{opacity:1;transform:rotate(42deg) scale(1)}.ink-check--radio input:checked+i:after{transform:scale(1)}.ink-check input:focus-visible+i{outline:1.5px solid var(--ip-ink);outline-offset:2px}.ink-check input:disabled~*{color:var(--ip-ink-5)}.ink-check input:disabled+i{opacity:.45}.ink-range{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:pointer}.ink-range::-webkit-slider-runnable-track{height:3px;border-radius:var(--ip-r-pill);background:var(--ip-ink-6)}.ink-range::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-5.5px;border-radius:50%;background:var(--ip-ink);border:2px solid var(--ip-paper)}.ink-range::-moz-range-track{height:3px;border-radius:var(--ip-r-pill);background:var(--ip-ink-6)}.ink-range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--ip-ink);border:2px solid var(--ip-paper)}.ink-range:focus-visible::-webkit-slider-thumb{outline:1.5px solid var(--ip-ink);outline-offset:2px}.ink-formrow{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:12px;padding:7px 0;border-bottom:var(--ip-hair) dashed var(--ip-rule)}.ink-formrow:last-child{border-bottom:0}.ink-formrow>span:first-child{font-size:11.5px;color:var(--ip-ink-4);letter-spacing:.02em}.ink-badge{display:inline-flex;align-items:center;gap:5px;height:19px;padding:0 7px;font:700 9.5px/1 var(--ip-font);letter-spacing:.13em;text-transform:uppercase;color:var(--ip-ink-2);border-radius:4px;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);white-space:nowrap}.ink-badge--solid{background:var(--ip-ink);color:var(--ip-paper);box-shadow:none}.ink-badge--dash{box-shadow:none;outline:var(--ip-hair) dashed var(--ip-ink-5);outline-offset:-1px}.ink-badge--red{color:var(--ip-red);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-red)}.ink-badge--blue{color:var(--ip-blue);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-blue)}.ink-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 6px 0 10px;font-size:12px;font-weight:500;color:var(--ip-ink-1);background:var(--ip-well);border-radius:var(--ip-r-pill)}.ink-chip button{width:14px;height:14px;display:grid;place-items:center;border:0;background:transparent;color:var(--ip-ink-4);cursor:pointer;border-radius:50%;font-size:12px;line-height:1}.ink-chip button:hover{background:var(--ip-ink);color:var(--ip-paper)}.ink-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.ink-dot--done{background:var(--ip-ink)}.ink-dot--idle{background:transparent;box-shadow:inset 0 0 0 1.2px var(--ip-ink-5)}.ink-dot--warn{background:transparent;box-shadow:inset 0 0 0 1.2px var(--ip-ink);background-image:repeating-linear-gradient(45deg,var(--ip-ink) 0 1.5px,transparent 1.5px 3px)}.ink-dot--bad{background:var(--ip-red)}.ink-dot--run{background:var(--ip-blue);animation:ink-pulse 1.4s var(--ip-ease) infinite}@keyframes ink-pulse{0%,to{opacity:1}50%{opacity:.28}}.ink-tabs{display:flex;gap:0;border-bottom:var(--ip-hair) solid var(--ip-rule)}.ink-tabs button{position:relative;height:34px;padding:0 14px;font:600 13px/1 var(--ip-font);color:var(--ip-ink-4);background:transparent;border:0;cursor:pointer;transition:color var(--ip-fast) var(--ip-ease)}.ink-tabs button:hover{color:var(--ip-ink-2)}.ink-tabs button[aria-selected=true]{color:var(--ip-ink)}.ink-tabs button[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ip-ink)}.ink-crumb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ip-ink-4);flex-wrap:wrap}.ink-crumb b{font-weight:600;color:var(--ip-ink)}.ink-crumb i{font-style:normal;color:var(--ip-ink-6)}.ink-tree{font-size:12.5px;-webkit-user-select:none;user-select:none}.ink-tree div{display:flex;align-items:center;gap:7px;height:26px;padding:0 8px;border-radius:5px;color:var(--ip-ink-1);cursor:pointer;transition:background var(--ip-fast) var(--ip-ease)}.ink-tree div:hover{background:var(--ip-well)}.ink-tree div[aria-selected=true]{background:var(--ip-ink);color:var(--ip-paper)}.ink-tree div[aria-selected=true] .ink-num,.ink-tree div[aria-selected=true] .ink-quiet{color:var(--ip-ink-7)}.ink-tree .tw{width:9px;font-size:8px;color:var(--ip-ink-4);flex:none}.ink-list{display:flex;flex-direction:column}.ink-list>*{display:flex;align-items:center;gap:10px;min-height:38px;padding:6px 10px;border-bottom:var(--ip-hair) solid var(--ip-rule-soft);transition:background var(--ip-fast) var(--ip-ease)}.ink-list>*:last-child{border-bottom:0}.ink-list>*:hover{background:var(--ip-paper-hi)}.ink-menu{min-width:190px;padding:5px;background:var(--ip-paper-hi);border-radius:var(--ip-r-box);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-4)}.ink-menu button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;height:28px;padding:0 9px;font:500 12.5px/1 var(--ip-font);color:var(--ip-ink-1);background:transparent;border:0;border-radius:5px;cursor:pointer;text-align:left}.ink-menu button:hover{background:var(--ip-ink);color:var(--ip-paper)}.ink-menu button:hover .ink-kbd{background:transparent;color:var(--ip-ink-7);border-color:var(--ip-ink-3)}.ink-menu button[disabled]{color:var(--ip-ink-5);pointer-events:none}.ink-menu hr{border:0;border-top:var(--ip-hair) solid var(--ip-rule);margin:5px 3px}.ink-menu .ink-red{color:var(--ip-red)}.ink-menu .ink-red:hover{background:var(--ip-red);color:var(--ip-paper)}.ink-table{width:100%;border-collapse:collapse;font-size:12.5px}.ink-table th{font:700 9.5px/1 var(--ip-font);letter-spacing:.15em;text-transform:uppercase;color:var(--ip-ink-4);text-align:left;padding:0 10px 7px;border-bottom:var(--ip-hair) solid var(--ip-ink-6);white-space:nowrap}.ink-table td{padding:7px 10px;border-bottom:var(--ip-hair) solid var(--ip-rule-soft);color:var(--ip-ink-1);vertical-align:middle;white-space:nowrap}.ink-table tbody tr:hover td{background:var(--ip-paper-hi)}.ink-table tbody tr[aria-selected=true] td{background:var(--ip-well)}.ink-table .n{font-family:var(--ip-mono);font-variant-numeric:tabular-nums;text-align:right}.ink-table .rownum{color:var(--ip-ink-4);font-family:var(--ip-mono);font-size:10.5px;text-align:right;width:34px}.ink-cell-edit{box-shadow:inset 0 0 0 1.5px var(--ip-ink);border-radius:3px}.ink-bar{height:5px;background:var(--ip-ink-7);border-radius:var(--ip-r-pill);overflow:hidden}.ink-bar>i{display:block;height:100%;background:var(--ip-ink);border-radius:var(--ip-r-pill);transition:width var(--ip-slow) var(--ip-ease)}.ink-bar--blue>i{background:var(--ip-blue)}.ink-bar--red>i{background:var(--ip-red)}.ink-bar--indet>i{width:34%;animation:ink-sweep 1.3s var(--ip-ease) infinite}@keyframes ink-sweep{0%{transform:translate(-105%)}to{transform:translate(300%)}}.ink-meter{display:flex;gap:2px;align-items:flex-end;height:16px}.ink-meter i{flex:1;height:100%;background:var(--ip-ink-7);border-radius:1px}.ink-meter i.on{background:var(--ip-ink)}.ink-meter i.on.blue{background:var(--ip-blue)}.ink-skel{background:var(--ip-ink-7);border-radius:4px;height:10px;animation:ink-breathe 1.5s var(--ip-ease) infinite}@keyframes ink-breathe{0%,to{opacity:1}50%{opacity:.45}}.ink-tip{display:inline-block;padding:4px 8px;font-size:11.5px;font-weight:500;line-height:1.35;color:var(--ip-paper);background:var(--ip-ink);border-radius:5px;max-width:220px}.ink-tip--note{color:var(--ip-ink);background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-4)}.ink-toast{display:flex;align-items:flex-start;gap:10px;min-width:min(280px,100%);max-width:380px;padding:11px 13px;background:var(--ip-paper-hi);border-radius:var(--ip-r-box);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-4)}.ink-toast--ink{background:var(--ip-ink);color:var(--ip-paper);box-shadow:none}.ink-toast--ink .ink-note{color:var(--ip-ink-6)}.ink-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--ip-scrim);display:grid;place-items:center;padding:24px;z-index:90;animation:ink-fade var(--ip-base) var(--ip-ease)}@keyframes ink-fade{0%{opacity:0}to{opacity:1}}.ink-modal{width:min(440px,100%);background:var(--ip-paper);border-radius:var(--ip-r-card);padding:22px;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-4);animation:ink-rise var(--ip-base) var(--ip-ease)}@keyframes ink-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.ink-note-block{display:flex;gap:9px;padding:10px 12px;border-radius:var(--ip-r-box);background:var(--ip-well);font-size:12.5px;line-height:1.55;color:var(--ip-ink-2)}.ink-note-block--red{background:var(--ip-red-soft);color:var(--ip-red)}.ink-note-block--blue{background:var(--ip-blue-soft);color:var(--ip-blue)}.ink-note-block b{color:inherit;font-weight:700;flex:none}.ink-agent{position:relative;box-shadow:inset 0 0 0 1.5px var(--ip-blue)}.ink-agent-tag{display:inline-flex;align-items:center;gap:6px;height:20px;padding:0 8px 0 6px;font:700 9.5px/1 var(--ip-font);letter-spacing:.14em;text-transform:uppercase;color:var(--ip-paper);background:var(--ip-blue);border-radius:4px}[data-theme=carbon] .ink-agent-tag{color:var(--ip-desk)}.ink-agent-run{position:relative;overflow:hidden}.ink-agent-run:after{content:"";position:absolute;left:0;top:0;height:2px;width:38%;background:var(--ip-blue);animation:ink-sweep 1.5s var(--ip-ease) infinite}.ink-agent-caret:after{content:"";display:inline-block;width:6px;height:1.05em;margin-left:2px;background:var(--ip-blue);vertical-align:-2px;animation:ink-blink .9s steps(1) infinite}@keyframes ink-blink{0%,49%{opacity:1}50%,to{opacity:0}}.ink-agent-diff{background:var(--ip-blue-soft);color:var(--ip-blue);border-bottom:1.5px solid var(--ip-blue);padding:0 1px}.ink-canvas{position:relative;border-radius:var(--ip-r-box);overflow:hidden;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.ink-ruler{position:relative;height:22px;background:var(--ip-paper);border-bottom:var(--ip-hair) solid var(--ip-rule);overflow:hidden}.ink-ruler .t{position:absolute;bottom:0;width:1px;background:var(--ip-ink-6)}.ink-ruler .t.maj{background:var(--ip-ink-4)}.ink-ruler .lb{position:absolute;top:2px;font:600 8.5px/1 var(--ip-mono);color:var(--ip-ink-4);letter-spacing:.04em}.ink-track{position:relative;height:34px;border-bottom:var(--ip-hair) solid var(--ip-rule-soft);background:var(--ip-paper)}.ink-track:nth-child(2n){background:var(--ip-paper-hi)}.ink-clip{position:absolute;top:5px;height:24px;border-radius:5px;background:var(--ip-ink);color:var(--ip-paper);display:flex;align-items:center;padding:0 7px;font:600 10px/1 var(--ip-font);letter-spacing:.02em;overflow:hidden;cursor:grab;transition:background var(--ip-fast) var(--ip-ease)}.ink-clip--ghost{background:transparent;color:var(--ip-ink-2);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-5)}.ink-clip--hatch{background:var(--ip-well);color:var(--ip-ink-2);background-image:repeating-linear-gradient(45deg,var(--ip-ink-7) 0 2px,transparent 2px 6px);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-6)}.ink-clip[aria-selected=true]{box-shadow:0 0 0 1.5px var(--ip-ink),0 0 0 3px var(--ip-paper)}.ink-playhead{position:absolute;top:0;bottom:0;width:1px;background:var(--ip-ink);z-index:4;pointer-events:none}.ink-playhead:before{content:"";position:absolute;top:0;left:-4px;border:4px solid transparent;border-top:6px solid var(--ip-ink)}.ink-wave{display:flex;align-items:center;gap:1px;height:76px;padding:0 2px}.ink-wave i{flex:1;background:var(--ip-ink-5);border-radius:var(--ip-r-pill);transition:background var(--ip-fast) var(--ip-ease)}.ink-wave i.sel{background:var(--ip-ink)}.ink-selection{position:absolute;top:0;bottom:0;background:#1c1c1a0e;border-left:var(--ip-hair) dashed var(--ip-ink);border-right:var(--ip-hair) dashed var(--ip-ink)}[data-theme=carbon] .ink-selection{background:#edebe40f}.ink-node{position:absolute;width:150px;background:var(--ip-paper);border-radius:9px;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-5);font-size:11.5px;overflow:hidden}.ink-node header{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 8px;background:var(--ip-ink);color:var(--ip-paper);font:700 9.5px/1.3 var(--ip-font);letter-spacing:.12em;text-transform:uppercase}.ink-node ul{list-style:none;padding:5px 0}.ink-node li{display:flex;align-items:center;justify-content:space-between;padding:3px 8px;color:var(--ip-ink-2);font-size:11px}.ink-node[data-state=agent]{box-shadow:inset 0 0 0 1.5px var(--ip-blue)}.ink-node[data-state=agent] header{background:var(--ip-blue)}.ink-node[data-state=bad]{box-shadow:inset 0 0 0 1.5px var(--ip-red)}.ink-node[data-state=bad] header{background:var(--ip-red)}.ink-port{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--ip-paper);box-shadow:inset 0 0 0 1.5px var(--ip-ink);z-index:3}.ink-plate{position:relative;display:grid;place-items:center;background:var(--ip-well);overflow:hidden}.ink-bbox{position:absolute;box-shadow:inset 0 0 0 1.5px var(--ip-ink)}.ink-bbox>b{position:absolute;top:-17px;left:-1.5px;height:16px;display:flex;align-items:center;padding:0 5px;font:700 9px/1 var(--ip-font);letter-spacing:.1em;text-transform:uppercase;background:var(--ip-ink);color:var(--ip-paper);border-radius:3px 3px 0 0;white-space:nowrap}.ink-bbox--red{box-shadow:inset 0 0 0 1.5px var(--ip-red)}.ink-bbox--red>b{background:var(--ip-red)}.ink-bbox--dash{box-shadow:none;outline:1.5px dashed var(--ip-ink-4);outline-offset:-1px}.ink-handle{position:absolute;width:6px;height:6px;background:var(--ip-paper);box-shadow:inset 0 0 0 1.2px var(--ip-ink)}.ink-thumb{position:relative;flex:none;border-radius:6px;background:var(--ip-paper);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);overflow:hidden;cursor:pointer;transition:box-shadow var(--ip-fast) var(--ip-ease)}.ink-thumb:hover{box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink-4)}.ink-thumb[aria-selected=true]{box-shadow:inset 0 0 0 1.5px var(--ip-ink)}.ink-thumb>span{position:absolute;left:4px;top:4px;font:700 8.5px/1 var(--ip-mono);color:var(--ip-ink-4)}.ink-drop{height:2px;background:var(--ip-ink);border-radius:2px;position:relative}.ink-drop:before,.ink-drop:after{content:"";position:absolute;top:-2px;width:6px;height:6px;border-radius:50%;background:var(--ip-ink)}.ink-drop:before{left:-3px}.ink-drop:after{right:-3px}.ink-slot{display:grid;place-items:center;min-height:52px;border-radius:var(--ip-r-box);outline:var(--ip-hair) dashed var(--ip-ink-5);outline-offset:-1px;color:var(--ip-ink-4);font-size:11.5px}.ink-resizer{width:5px;cursor:col-resize;position:relative;flex:none}.ink-resizer:after{content:"";position:absolute;left:2px;top:0;bottom:0;width:1px;background:var(--ip-rule)}.ink-resizer:hover:after{background:var(--ip-ink);width:1.5px}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}:root{color:var(--ip-ink);background:var(--ip-desk);font-family:var(--ip-font)}body{min-width:320px;min-height:100vh;background:var(--ip-desk)}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;min-height:36px;padding:0 10px;color:var(--ip-ink);background:var(--ip-paper);border:0;border-radius:var(--ip-r-ctl);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);transition:background var(--ip-fast) var(--ip-ease),box-shadow var(--ip-fast) var(--ip-ease)}textarea{min-height:74px;padding:9px 10px;resize:vertical}input:focus,select:focus,textarea:focus{outline:0;background:var(--ip-paper-hi);box-shadow:inset 0 0 0 1.5px var(--ip-blue)}input::placeholder,textarea::placeholder{color:var(--ip-ink-5)}.center-screen,.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.loader{width:34px;height:34px;border:1px solid var(--ip-rule);border-top-color:var(--ip-ink);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-panel{width:min(440px,100%);padding:28px;background:var(--ip-paper);border-radius:var(--ip-r-card);box-shadow:0 18px 44px #17212b14,inset 0 0 0 var(--ip-hair) var(--ip-rule)}.login-title,.brand{display:flex;gap:14px;align-items:center}.brand-mark{width:40px;height:40px;display:grid;place-items:center;color:var(--ip-paper);background:var(--ip-blue);border-radius:var(--ip-r-box);font-weight:800}.login-title h1,.page-header h2{margin:0;font-size:27px;line-height:1.2;letter-spacing:0}.login-title p,.page-header p,.brand span,.sidebar-foot small{margin:3px 0 0;color:var(--ip-ink-4)}.stack-form{display:grid;gap:16px;margin-top:26px}.stack-form.compact{margin-top:0;gap:12px}label,.field-control{display:grid;gap:6px;color:var(--ip-ink-2);font-size:13px}.field-control>label{display:block;color:inherit;font-size:inherit}.password-input{position:relative;display:block;width:100%}.password-input input{padding-right:42px}.password-toggle{position:absolute;top:50%;right:4px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:var(--ip-r-ctl);background:transparent;color:var(--ip-ink-4);cursor:pointer;transform:translateY(-50%);transition:background var(--ip-fast) var(--ip-ease),color var(--ip-fast) var(--ip-ease)}.password-toggle svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-toggle:hover:not(:disabled),.password-toggle[aria-pressed=true]{background:var(--ip-blue-soft);color:var(--ip-blue)}.password-toggle:focus-visible{outline:0;background:var(--ip-blue-soft);box-shadow:inset 0 0 0 1.5px var(--ip-blue);color:var(--ip-blue)}.password-toggle:disabled{color:var(--ip-ink-5);cursor:not-allowed}.primary-button,.secondary-button,.ghost-button{width:fit-content}.primary-button{background:var(--ip-blue);color:var(--ip-paper);box-shadow:none}.primary-button:hover:not(:disabled){background:#184c65;box-shadow:none}.login-panel .primary-button,.stack-form .primary-button{width:100%}.slim{min-height:25px}.error-banner{border-radius:var(--ip-r-box);background:var(--ip-red-soft);color:var(--ip-red);padding:10px 12px;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-red)}.success-banner{border-radius:var(--ip-r-box);background:var(--ip-green-soft);color:var(--ip-green);padding:10px 12px;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-green)}.app-shell{min-height:100vh;display:grid;grid-template-columns:232px 1fr}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;padding:18px;background:var(--ip-paper);box-shadow:inset calc(-1 * var(--ip-hair)) 0 0 var(--ip-rule)}.brand strong,.sidebar-foot span{display:block}.nav-list{display:grid;gap:4px}.nav-item{width:100%;display:flex;gap:10px;align-items:center;min-height:36px;border:0;border-radius:var(--ip-r-ctl);padding:0 8px;background:transparent;color:var(--ip-ink-2);text-align:left;transition:background var(--ip-fast) var(--ip-ease),color var(--ip-fast) var(--ip-ease)}.nav-item:hover{background:var(--ip-well);color:var(--ip-ink)}.nav-symbol,.icon-button{width:25px;height:25px;display:grid;place-items:center;flex:0 0 auto;font-weight:800}.nav-symbol{border-radius:5px;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.nav-item.active{background:var(--ip-blue);color:var(--ip-paper)}.nav-item.active .nav-symbol{color:var(--ip-blue);background:var(--ip-paper);box-shadow:none}.sidebar-foot{margin-top:auto;display:grid;gap:8px;padding-top:16px;border-top:var(--ip-hair) solid var(--ip-rule)}.content{min-width:0;padding:22px}.page{display:grid;gap:18px;max-width:1440px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;min-height:62px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card,.panel,.dict-item,.audit-item{background:var(--ip-paper);border-radius:var(--ip-r-box);box-shadow:0 1px 2px #17212b0a,inset 0 0 0 var(--ip-hair) var(--ip-rule)}.metric-card{padding:16px}.metric-card span{display:block;color:var(--ip-ink-4);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.metric-card strong{display:block;margin-top:8px;font-family:var(--ip-mono);font-size:28px;line-height:1;letter-spacing:0}.metric-card small{display:block;margin-top:8px;color:var(--ip-ink-4);font-size:12px}.dashboard-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-metric strong{font-size:25px}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}.dashboard-toolbar{align-items:end}.dashboard-toolbar label{min-width:150px}.dashboard-toolbar label:first-child{min-width:210px}.rate-cell{display:grid;grid-template-columns:54px minmax(90px,1fr);gap:8px;align-items:center}.rate-cell span{font-family:var(--ip-mono);color:var(--ip-ink-2)}.two-column,.split-layout,.form-builder-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}.split-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}.form-builder-grid{grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr)}.panel{padding:15px;min-width:0}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:center;padding-bottom:9px;margin-bottom:12px;border-bottom:var(--ip-hair) solid var(--ip-rule)}.panel-title h3{margin:0;font-size:15px}.panel-title span{height:19px;display:inline-flex;align-items:center;padding:0 7px;border-radius:4px;color:var(--ip-ink-2);font-size:9.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.permission-list{display:grid}.permission-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:var(--ip-hair) solid var(--ip-rule-soft)}.permission-row:last-child{border-bottom:0}.group-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.group-pill{display:grid;grid-template-columns:34px 1fr;gap:8px 10px;align-items:center;padding:12px;border-radius:var(--ip-r-box);background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.group-pill span,.group-code{width:34px;height:34px;display:grid;place-items:center;border-radius:6px;color:var(--ip-paper);background:var(--ip-ink);font-weight:800}.group-pill small{grid-column:2;color:var(--ip-ink-4)}.tone-cyan span,.tone-cyan.group-code{color:var(--ip-blue);background:var(--ip-blue-soft);box-shadow:inset 0 0 0 1.5px var(--ip-blue)}.tone-green span,.tone-green.group-code{color:var(--ip-ink);background:transparent;box-shadow:inset 0 0 0 1.5px var(--ip-ink)}.tone-indigo span,.tone-indigo.group-code{color:var(--ip-ink);background:transparent;border:var(--ip-hair) dashed var(--ip-ink)}.tone-gold span,.tone-gold.group-code{color:var(--ip-ink);background:repeating-linear-gradient(45deg,var(--ip-ink) 0 1px,transparent 1px 4px),var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-ink)}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:8px 10px;border-radius:var(--ip-r-box);background:var(--ip-paper);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.toolbar label{min-width:180px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:760px;font-size:12.75px}th{padding:0 10px 8px;color:var(--ip-ink-4);border-bottom:var(--ip-hair) solid var(--ip-ink-6);font-size:9.5px;font-weight:700;letter-spacing:.15em;text-align:left;text-transform:uppercase}td{padding:8px 10px;border-bottom:var(--ip-hair) solid var(--ip-rule-soft);color:var(--ip-ink-1);vertical-align:middle;white-space:nowrap}tbody tr:hover td{background:var(--ip-paper-hi)}.dashboard-table{min-width:620px}.row-actions{display:flex;gap:6px;align-items:center}.status-badge,.status-button{display:inline-flex;align-items:center;justify-content:center;min-width:54px;min-height:24px;border-radius:var(--ip-r-pill);font-size:12px}.status-badge.active,.status-button.on{color:var(--ip-paper);background:var(--ip-green)}.status-badge.disabled,.status-button:not(.on){color:var(--ip-red);background:var(--ip-red-soft);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-red)}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check-line{display:flex;gap:8px;align-items:center}.check-line input{width:16px;min-height:16px;box-shadow:none}.check-line.small{white-space:nowrap}.builder-groups{display:grid;gap:12px}.group-editor{border-radius:var(--ip-r-box);padding:12px;background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.group-editor header{display:flex;gap:10px;align-items:center;margin-bottom:10px}.group-editor header span,.field-row span{display:block;color:var(--ip-ink-4);font-size:12px}.field-list{display:grid;gap:1px;background:var(--ip-rule-soft)}.field-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:9px;background:var(--ip-paper)}.field-meta{display:flex;gap:6px}.field-meta span{padding:2px 7px;border-radius:var(--ip-r-pill);background:var(--ip-well)}.inline-field-form{display:grid;grid-template-columns:minmax(110px,1fr) minmax(110px,1fr) minmax(120px,.8fr) auto auto;gap:8px;align-items:center;margin-top:10px}.add-group-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.runtime-preview{display:grid;gap:14px}.preview-group{padding:12px;border-radius:var(--ip-r-box);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.preview-group h3{margin:0 0 12px;font-size:15px}.preview-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preview-fields b{color:var(--ip-red);margin-left:3px}.upload-placeholder{min-height:74px;display:grid;place-items:center;border:var(--ip-hair) dashed var(--ip-ink-5);border-radius:var(--ip-r-ctl);color:var(--ip-ink-4);background:var(--ip-well)}.dict-grid,.audit-list{display:grid;gap:10px}.dict-item{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px}.dict-item span{display:block;color:var(--ip-ink-4);font-size:12px}.audit-item{display:flex;gap:12px;padding:14px}.audit-item>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:var(--ip-paper);background:var(--ip-ink);flex:0 0 auto}.audit-item strong,.audit-item p{margin:0}.audit-item p{color:var(--ip-ink-4);margin-top:4px}.empty-state{min-height:120px;display:grid;place-items:center;color:var(--ip-ink-4);border:var(--ip-hair) dashed var(--ip-ink-6);border-radius:var(--ip-r-box);background:var(--ip-well)}.toolbar-note{align-self:center;color:var(--ip-ink-4);font-size:12px}.permission-layout{display:grid;grid-template-columns:minmax(580px,1fr) minmax(320px,380px);gap:14px;align-items:start}.permission-side{display:grid;gap:14px}.permission-matrix-panel{overflow:hidden}.matrix-table{min-width:900px}.matrix-table th,.matrix-table td{vertical-align:top}.matrix-table th:not(:first-child),.matrix-table td:not(:first-child){text-align:center}.matrix-group{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;min-width:190px}.matrix-group small{display:block;margin-top:2px;color:var(--ip-ink-4)}.matrix-cell{display:inline-grid;grid-template-columns:repeat(2,minmax(58px,1fr));gap:6px;min-width:122px}.mini-check{display:inline-flex;justify-content:center;align-items:center;gap:5px;min-height:25px;padding:0 7px;border-radius:var(--ip-r-ctl);color:var(--ip-ink-2);background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule);font-size:12px;white-space:nowrap}.mini-check input{width:14px;min-height:14px;box-shadow:none}.effective-list,.override-list,.override-form{display:grid;gap:9px}.effective-row,.override-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 0;border-bottom:var(--ip-hair) solid var(--ip-rule-soft)}.effective-row:last-child,.override-item:last-child{border-bottom:0}.effective-row span,.override-item span{display:block;color:var(--ip-ink-4);font-size:12px}.override-checks{display:flex;gap:8px;flex-wrap:wrap}.business-layout{display:grid;grid-template-columns:minmax(330px,.82fr) minmax(0,1.5fr);gap:16px;align-items:start}.project-filters,.assignment-grid,.dynamic-grid,.project-summary-grid{display:grid;gap:12px}.project-filters{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.assignment-grid,.dynamic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-list{display:grid;gap:6px;max-height:620px;overflow:auto;padding-right:4px}.project-row{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 12px;border:0;border-radius:var(--ip-r-box);background:var(--ip-paper-hi);color:var(--ip-ink);text-align:left;box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.project-row.active{background:var(--ip-blue-soft);color:var(--ip-ink);box-shadow:inset 3px 0 0 var(--ip-blue),inset 0 0 0 var(--ip-hair) var(--ip-blue)}.project-row>span{min-width:0}.project-row strong,.project-row small{display:block;overflow-wrap:anywhere}.project-row small{margin-top:3px;color:inherit;opacity:.72}.project-row i{flex:0 0 auto;font-style:normal;font-size:12px;padding:4px 7px;border-radius:var(--ip-r-ctl);color:var(--ip-blue);background:var(--ip-blue-soft);box-shadow:inset 0 0 0 var(--ip-hair) currentColor}.project-row i.status-reporting{color:var(--ip-amber);background:var(--ip-amber-soft)}.project-row i.status-submitted{color:var(--ip-green);background:var(--ip-green-soft)}.business-form{display:grid;gap:14px;margin-top:14px}.detail-panel{min-height:520px}.info-cell{display:grid;gap:4px;padding:10px 11px;border-radius:var(--ip-r-box);background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule-soft)}.info-cell span,.field-hint,.submission-log span{color:var(--ip-ink-4);font-size:12px}.info-cell strong{font-size:14px}.stage-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.stage-tabs button{min-height:30px;padding:0 10px;border:0;border-radius:var(--ip-r-ctl);color:var(--ip-ink-2);background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule)}.stage-tabs button[aria-pressed=true]{color:var(--ip-paper);background:var(--ip-blue);box-shadow:none}.stage-tabs button:disabled{opacity:.42}.submission-log{display:grid;gap:8px;margin-top:18px}.submission-log h3{margin:0;font-size:16px}.submission-log article{display:grid;gap:9px;padding:11px;border-radius:var(--ip-r-box);background:var(--ip-paper-hi);border-bottom:var(--ip-hair) solid var(--ip-rule-soft)}.submission-head{display:flex;justify-content:space-between;gap:12px}.submission-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:0}.submission-values div{min-width:0}.submission-values dt{color:var(--ip-ink-4);font-size:12px}.submission-values dd{margin:2px 0 0;overflow-wrap:anywhere;font-size:13px}.empty-inline{padding:22px;color:var(--ip-ink-4);text-align:center;border-radius:var(--ip-r-box);background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule-soft)}@media (max-width: 1100px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.two-column,.split-layout,.form-builder-grid,.dashboard-grid,.business-layout,.permission-layout,.preview-fields,.project-filters,.dynamic-grid,.project-summary-grid,.submission-values{grid-template-columns:1fr}}@media (max-width: 760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:16px}.metric-grid,.dashboard-metric-grid,.group-strip,.checkbox-grid,.inline-field-form,.assignment-grid{grid-template-columns:1fr}}.mobile-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--ip-paper-hi)}.mobile-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--ip-paper);box-shadow:0 1px 0 var(--ip-rule)}.mobile-brand{display:flex;align-items:center;gap:8px;margin-right:auto}.mobile-brand .brand-mark{width:30px;height:30px;font-size:15px}.mobile-user{color:var(--ip-ink-2);font-size:13px}.mobile-logout{min-height:32px;padding:0 10px;font-size:13px}.mobile-content{flex:1;padding:14px 12px calc(64px + env(safe-area-inset-bottom));width:100%;max-width:720px;margin:0 auto;box-sizing:border-box}.mobile-content .page{gap:14px}.mobile-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--ip-paper);box-shadow:0 -1px 0 var(--ip-rule)}.mobile-tab{display:grid;justify-items:center;gap:3px;min-height:48px;border:0;background:transparent;color:var(--ip-ink-2);font-size:12px}.mobile-tab.active{color:var(--ip-blue)}.mobile-tab.active .nav-symbol{background:var(--ip-blue);color:var(--ip-paper);box-shadow:none}.mobile-content .business-form input,.mobile-content .business-form textarea,.mobile-content .business-form select,.mobile-content .project-filters input,.mobile-content .project-filters select,.mobile-content .stage-tabs button,.mobile-content .primary-button{min-height:44px}.mobile-content .project-list{display:grid;gap:8px}.mobile-content .project-row{min-height:56px}.mobile-content .dynamic-grid{grid-template-columns:1fr}.mobile-content .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-upload{display:grid;gap:8px}.photo-actions{display:flex;gap:8px}.photo-button{flex:1;display:grid;place-items:center;min-height:44px;border-radius:var(--ip-r-ctl);background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-blue);color:var(--ip-blue);font-weight:600;cursor:pointer}.photo-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.photo-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--ip-r-ctl);background:var(--ip-paper-hi);box-shadow:inset 0 0 0 var(--ip-hair) var(--ip-rule-soft);font-size:13px;word-break:break-all}.photo-list li button{border:0;background:transparent;color:var(--ip-red);min-height:36px;padding:0 8px;cursor:pointer}
