:root{color-scheme:light;--canvas:#f2f6f9;--surface:#fff;--ink:#172c3e;--muted:#657789;--line:#dce5ec;--accent:#067b96;--accent-dark:#05657c;--cyan:#00a8cc;--magenta:#df3a86;--yellow:#e8b91a;--black:#27323c;--warning:#99631b;--danger:#a2423c;--radius:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-size:14px;line-height:1.6}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #21a7ca;outline-offset:4px}svg{display:block}button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}h1,h2,p{margin:0}h1{font-size:clamp(25px,2.7vw,34px);font-weight:650;letter-spacing:-.06em;line-height:1.4}h2{font-weight:650}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.masthead{height:84px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100vw - 1240px)/2))}.brand{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:650;letter-spacing:.02em}.brand-mark{display:block;width:36px;height:36px;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:9px 16px;border:1px solid transparent;border-radius:8px;font-size:13px;font-weight:600;white-space:nowrap;transition:background .15s,border-color .15s}.button-primary{background:var(--accent);color:#fff}.button-primary:hover{background:var(--accent-dark)}.button-subtle{background:transparent;border-color:var(--line);color:var(--ink)}.button-subtle:hover{background:#edf3f7;border-color:#c2d1dc}.workspace{max-width:1304px;margin:auto;padding:42px 32px 24px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--muted);margin-bottom:7px}.refresh-controls{display:flex;align-items:center;gap:17px}.updated{color:var(--muted);font-size:12px;white-space:nowrap}.notice{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 19px;margin-bottom:24px;border:1px solid #cbe0e9;border-radius:9px;background:#eaf4f8;color:#2f6071}.notice strong{font-size:13px;font-weight:650}.notice p{font-size:12px;margin-top:2px}.notice-warning{background:#fbf5e9;border-color:#e9dabc;color:#875c26}.notice-error{background:#fcf0ee;border-color:#ebd2ce;color:var(--danger)}.text-button{flex-shrink:0;background:transparent;border:0;color:inherit;font-weight:650;padding:6px 0;font-size:12px}.text-button span{margin-left:5px}.overview{display:grid;grid-template-columns:minmax(290px,.88fr) minmax(0,1.5fr);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.device-panel{padding:27px 30px 28px;border-right:1px solid var(--line);position:relative}.device-status{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--muted)}.status-dot{width:7px;height:7px;border-radius:50%;background:#91a2ad;flex-shrink:0}.status-dot[data-state="ready"]{background:#188470;box-shadow:0 0 0 4px #e8f5f0}.status-dot[data-state="attention"]{background:#c88c25;box-shadow:0 0 0 4px #fcf2df}.status-dot[data-state="offline"]{background:#b05850;box-shadow:0 0 0 4px #faedeb}.printer-drawing{width:min(100%,245px);margin:11px auto 13px;color:#8296a6}.printer-drawing svg{width:100%}.device-panel h2{font-size:21px;letter-spacing:-.025em;overflow-wrap:anywhere;line-height:1.4}.device-description{font-size:12px;color:var(--muted);margin-top:6px;min-height:20px}.device-identifiers{display:grid;gap:4px;margin:19px 0 0;font-size:11px}.device-identifiers div{display:flex;gap:18px}.device-identifiers dt{color:var(--muted);flex:0 0 52px}.device-identifiers dd{margin:0;font-family:Menlo,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}.supplies-panel{padding:27px 34px 28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h2{font-size:15px;letter-spacing:-.02em}.section-note{font-size:11px;color:var(--muted)}.ink-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:27px;padding-top:35px}.ink-item{min-width:0;--ink-color:var(--black)}.ink-item[data-color="cyan"]{--ink-color:var(--cyan)}.ink-item[data-color="magenta"]{--ink-color:var(--magenta)}.ink-item[data-color="yellow"]{--ink-color:var(--yellow)}.ink-top{display:flex;align-items:center;gap:8px;margin-bottom:13px}.ink-letter{color:var(--ink-color);font:600 14px Menlo,Consolas,monospace}.ink-name{font-size:11px;color:var(--muted)}.ink-vessel{height:142px;border:1px solid var(--line);border-radius:4px 4px 10px 10px;position:relative;overflow:hidden;background:linear-gradient(to bottom,transparent 24.5%,#e8eef2 24.5%,#e8eef2 25%,transparent 25%,transparent 49.5%,#e8eef2 49.5%,#e8eef2 50%,transparent 50%,transparent 74.5%,#e8eef2 74.5%,#e8eef2 75%,transparent 75%),#f8fafc}.ink-fill{position:absolute;inset:auto 0 0;height:var(--level,0%);background:var(--ink-color);opacity:.92;border-top:2px solid #ffffff45;transition:height .5s ease}.ink-vessel.is-unknown{background:repeating-linear-gradient(-45deg,#f9fbfc,#f9fbfc 6px,#edf2f6 6px,#edf2f6 7px)}.ink-unknown{position:absolute;inset:0;display:grid;place-items:center;color:#92a4b2;font-family:Menlo,Consolas,monospace;font-size:24px;font-weight:400}.ink-vessel:not(.is-unknown) .ink-unknown{display:none}.ink-value{margin-top:14px;font:500 28px/1.2 Menlo,Consolas,monospace;letter-spacing:-.06em}.ink-value small{font-size:12px;margin-left:3px;color:var(--muted);letter-spacing:0}.ink-status{font-size:11px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere;min-height:18px}.details-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:30px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.detail-section{padding:24px 30px 26px;min-width:0}.detail-section+.detail-section{border-left:1px solid var(--line)}.paper-content{margin-top:21px}.empty-text{color:var(--muted);font-size:12px;padding:14px 0}.paper-item{display:grid;grid-template-columns:35px minmax(0,1fr) auto;gap:13px;align-items:center;padding:14px 0}.paper-item+.paper-item{border-top:1px solid var(--line)}.paper-icon{width:29px;height:35px;border:1.5px solid #94a7b7;border-radius:2px;position:relative;background:#f7fafc}.paper-icon:before,.paper-icon:after{content:"";position:absolute;height:1px;background:#b8c6d0;left:6px;right:6px;top:12px}.paper-icon:after{top:18px;right:10px}.paper-name{font-size:13px;font-weight:600;overflow-wrap:anywhere}.paper-description{font-size:12px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}.paper-status{font-size:11px;color:var(--muted);text-align:right;max-width:130px;overflow-wrap:anywhere}.network-state{font-size:11px;color:var(--muted)}.network-list{display:grid;gap:11px;margin:23px 0 0;font-size:12px}.network-list div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:16px}.network-list dt{color:var(--muted)}.network-list dd{margin:0;text-align:right;overflow-wrap:anywhere}.monospace{font-family:Menlo,Consolas,monospace;font-size:11px}.alerts-section{margin-top:30px;padding:0 2px}.alerts-list{list-style:none;margin:14px 0 0;padding:0}.alert-item{display:flex;align-items:baseline;gap:10px;font-size:12px;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:7px;margin-top:8px;overflow-wrap:anywhere}.alert-marker{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--accent);align-self:center}.alert-item[data-severity="warning"] .alert-marker{background:#b0802b}.alert-item[data-severity="error"] .alert-marker{background:var(--danger)}.alerts-list .empty-text{padding-top:0}.resource-details{font-size:12px;color:var(--muted);margin:15px 0}.resource-details summary{cursor:pointer;width:fit-content}.resource-details li{margin:7px 0}.workspace-footer{display:flex;justify-content:space-between;gap:12px;margin-top:34px;padding-top:17px;border-top:1px solid var(--line);font-size:11px;color:#7d8d9b}dialog{border:1px solid var(--line);border-radius:16px;padding:29px;width:min(470px,calc(100vw - 32px));background:#fff;color:var(--ink);box-shadow:0 24px 70px #172c3e25}dialog::backdrop{background:#132b4055;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start}.dialog-heading h2{font-size:23px;line-height:1.3}.dialog-heading .eyebrow{font-size:10px}.icon-button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:6px;background:#f0f5f8;color:var(--muted)}.dialog-description{font-size:12px;color:var(--muted);margin:17px 0 25px}.dialog-heading~label{display:block;font-size:12px;font-weight:600;margin:18px 0 8px}input{display:block;width:100%;height:43px;padding:9px 12px;border:1px solid #c7d5df;border-radius:7px;background:#fff;color:var(--ink);font-family:Menlo,Consolas,monospace;font-size:12px}input::placeholder{color:#8b9aa6}.field-help{font-size:11px;color:var(--muted);line-height:1.7;margin-top:7px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}.form-error{margin-top:18px;color:var(--danger);font-size:12px}.is-loading .refresh-icon{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1450px){.workspace{padding-top:52px}.overview{grid-template-columns:420px 1fr}.ink-grid{gap:35px}.ink-vessel{height:156px}}
@media(max-width:850px){.masthead{height:72px;padding:0 24px}.workspace{padding:28px 24px 20px}.page-heading{align-items:flex-start}.refresh-controls{flex-direction:column-reverse;align-items:flex-end;gap:7px}.overview{grid-template-columns:minmax(245px,.8fr) minmax(0,1fr)}.device-panel{padding:23px}.supplies-panel{padding:23px}.ink-grid{gap:15px}.ink-top{gap:5px;flex-direction:column;align-items:flex-start}.ink-vessel{height:137px}.ink-value{font-size:24px}.section-heading{align-items:baseline;flex-wrap:wrap;gap:4px}.section-note{font-size:10px}.device-panel h2{font-size:19px}.device-identifiers div{gap:9px}.detail-section{padding:22px}.paper-item{grid-template-columns:27px minmax(0,1fr);gap:11px}.paper-status{grid-column:2;text-align:left;max-width:none}.paper-icon{width:24px;height:31px}.paper-description{font-size:11px}.network-list div{grid-template-columns:65px minmax(0,1fr);gap:8px}}
@media(max-width:620px){.masthead{height:65px;padding:0 18px}.brand{font-size:15px;gap:9px}.masthead .button{min-height:36px;padding:7px 10px;font-size:11px}.masthead .button svg{width:15px;height:15px}.workspace{padding:26px 16px 18px}.page-heading{flex-wrap:wrap;gap:18px;margin-bottom:20px}.page-heading h1{font-size:27px}.refresh-controls{width:100%;flex-direction:row;justify-content:space-between;align-items:center}.refresh-controls .button{min-height:39px}.notice{padding:13px 14px;align-items:flex-start;margin-bottom:18px}.notice p{line-height:1.7}.notice-action{font-size:11px}.overview{display:block}.device-panel{border-right:0;border-bottom:1px solid var(--line);padding:22px 24px 24px;min-height:218px}.printer-drawing{width:150px;float:right;margin:17px -7px 10px 5px}.device-panel h2{font-size:21px;margin-top:23px}.device-description{max-width:220px;font-size:11px}.device-identifiers{clear:both;padding-top:15px;margin-top:0;display:flex;flex-wrap:wrap;gap:4px 16px}.device-identifiers dt{flex-basis:auto}.device-identifiers div{gap:8px;font-size:10px}.device-identifiers dd{font-size:10px}.supplies-panel{padding:23px 24px 26px}.section-heading{align-items:center}.ink-grid{padding-top:22px;gap:20px}.ink-top{flex-direction:row;align-items:center}.ink-vessel{height:120px}.ink-value{font-size:25px}.ink-status{font-size:10px}.details-grid{display:block;margin-top:20px}.detail-section{padding:23px 24px}.detail-section+.detail-section{border-left:0;border-top:1px solid var(--line)}.paper-item{grid-template-columns:30px minmax(0,1fr) auto;gap:12px}.paper-status{grid-column:auto;text-align:right;max-width:90px}.network-list div{grid-template-columns:90px minmax(0,1fr);gap:15px}.alerts-section{margin-top:24px}.workspace-footer{margin-top:27px;font-size:10px}dialog{padding:23px}.dialog-description{margin-bottom:21px}}
@media(max-width:370px){.ink-grid{gap:12px}.ink-name{font-size:10px}.printer-drawing{width:125px}.device-panel h2{font-size:19px}.device-identifiers{display:grid}.workspace-footer{flex-direction:column;gap:2px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
.status-dot[data-state="busy"]{background:#167baf;box-shadow:0 0 0 4px #e9f3fa}.notice-success{color:#24735c;background:#edf7f2;border-color:#cde6d9}
input:disabled{background:#f2f6f9;color:var(--muted)}

/* Printer address and local network check in connection settings. */
#settings-dialog{width:min(540px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto}.network-check-result{margin-top:12px;padding:11px 13px;border:1px solid #cbe0e9;border-radius:7px;background:#eaf4f8;color:#2f6071;font-size:12px}.network-check-result strong{font-weight:650}.network-check-result p{margin-top:3px;overflow-wrap:anywhere}.network-check-result[data-kind="success"]{color:#24735c;background:#edf7f2;border-color:#cde6d9}.network-check-result[data-kind="error"]{color:var(--danger);background:#fcf0ee;border-color:#ebd2ce}.network-check-result .monospace{font-size:10px;line-height:1.8;margin-top:6px}.network-guide{font-size:11px;color:var(--muted);margin:12px 0 18px;line-height:1.8}.network-guide summary{cursor:pointer;color:var(--accent);width:fit-content;font-weight:600}.network-guide ol{padding-left:19px;margin:9px 0}.network-guide li+li{margin-top:7px}.network-guide>p{font-size:10px}

