.console-root{font-size:13px;background:var(--paper);color:var(--ink)}.console-root h1,.console-root h2,.console-root h3{font-family:var(--font-text);font-weight:700;letter-spacing:0}.console-root h1{font-size:18px}.console-root h2{font-size:15px;margin:0}.console-root h3{font-size:13px;margin:0}.console-root button,.console-root input,.console-root select,.console-root textarea{font:inherit;color:var(--ink)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:var(--s5)}.login-box{width:360px;max-width:100%;border:1px solid var(--line);padding:28px;background:var(--paper)}.login-logo{background:#fff;display:inline-block;padding:6px 8px;margin-bottom:18px}.login-demo{margin-top:16px;border:1px solid var(--line);padding:10px;font-size:12px;line-height:1.6}.login-err{color:#fff;background:var(--danger);padding:6px 8px;margin-bottom:10px}.login-hint{font-size:12px}.shell{display:grid;min-height:100vh;grid-template-columns:224px minmax(0,1fr)}.shell aside{background:var(--sage);border-right:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column}.shell aside .brand{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);height:44px}.shell aside .brand .mark{background:#fff;padding:2px 4px;display:inline-flex}.shell aside .brand b{font-size:12px}.viewas{padding:10px 12px;border-bottom:1px solid var(--line)}.viewas label{display:block;font-size:11px;font-weight:700;margin-bottom:4px}.shell aside select{width:100%;height:28px;border:1px solid var(--line);background:var(--paper);padding:0 6px}.shell aside .sec{padding:12px 12px 4px;font-size:11px;font-weight:700}.shell aside nav a{display:block;padding:6px 12px 6px 20px;color:var(--ink);text-decoration:none;border-left:3px solid transparent}.shell aside nav a:hover{background:var(--sage-200)}.shell aside nav a.on{background:var(--paper);border-left-color:var(--forest);font-weight:700}.shell aside .user{margin-top:auto;padding:12px;font-size:12px;border-top:1px solid var(--line)}.shell aside .user button{background:none;border:0;padding:0;color:var(--ink);text-decoration:underline;cursor:pointer;font:inherit}.console-topbar{height:44px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:0 16px;position:-webkit-sticky;position:sticky;top:0;background:var(--paper);z-index:6}.console-topbar .crumb{font-weight:700}.sp{flex:1 1}.console-page{padding:14px 16px 40px}.pagehead{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.pagehead p{margin:0;font-size:12px}.viewnote{margin:-4px 0 10px;max-width:90ch}.b,.viewnote{font-size:12px}.b{height:28px;padding:0 10px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-weight:600;cursor:pointer;white-space:nowrap}.b:hover{background:var(--sage)}.b.p{background:var(--forest);color:#fff;border-color:var(--forest)}.b.p:hover{background:var(--forest-700)}.b.on{background:var(--sage-200)}.b .n{display:inline-block;min-width:16px;padding:0 4px;margin-left:4px;background:var(--forest);color:#fff;font-size:10px}.inp{height:28px;padding:0 8px}.inp,.panel{border:1px solid var(--line);background:var(--paper)}.strip{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.strip .tot{font-size:12px}.tags{display:flex;gap:4px;flex-wrap:wrap}.tag{display:inline-flex;align-items:center;gap:4px;background:var(--sage-200);padding:2px 6px;font-size:11px}.tag button{border:0;background:none;cursor:pointer;padding:0 2px;font-weight:700;color:var(--ink)}.sheet-body{display:flex;min-height:240px}.filters{width:220px;flex:none;border-right:1px solid var(--line);padding:8px}.filters h3{margin-bottom:8px}.filters label{display:block;font-size:11px;font-weight:700;margin:8px 0 3px}.filters select{width:100%;height:26px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.filters .row{display:flex;gap:6px;margin-top:12px}.filters .hintline{font-size:12px}.gridwrap{flex:1 1;min-width:0;overflow:auto}.gridwrap .sheet{border:0}.sheet th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sheet th .ar{font-size:10px;margin-left:4px}.sheet th button.sortbtn{all:unset;display:block;width:100%;cursor:pointer;font:inherit;font-weight:700;color:var(--ink);white-space:nowrap}.sheet th button.sortbtn:focus-visible{outline:3px solid var(--marigold);outline-offset:-3px}.sheet th.num button.sortbtn{text-align:right}.sheet tr.click{cursor:pointer}.sheet td.edit{padding:0}.sheet td.wrapc{white-space:normal;min-width:260px}.sheet tfoot td{font-weight:700;background:var(--sage)}.sheet td .cellthumb{display:block;height:22px;width:auto;max-width:120px;object-fit:cover;border:1px solid var(--line);background:var(--sage)}.shotfull{display:block;max-width:100%;max-height:320px;border:1px solid var(--ink)}.st{min-width:92px;text-align:center;padding:2px 6px;font-size:11px;font-weight:600}.bar,.st{display:inline-block}.bar{height:10px;background:var(--forest);vertical-align:middle;margin-right:6px}.foot{display:flex;align-items:center;gap:8px;padding:6px 8px;border-top:1px solid var(--line);font-size:12px}.foot select{height:24px;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.sheettabs{display:flex;gap:0;border-top:1px solid var(--line);background:var(--sage);overflow:auto}.sheettabs button{border:0;border-right:1px solid var(--line);background:transparent;padding:7px 14px;font-size:12px;cursor:pointer;white-space:nowrap;color:var(--ink)}.sheettabs button.on{background:var(--paper);font-weight:700;box-shadow:inset 0 2px 0 var(--forest)}.colmenu{position:relative}.colmenu .menu{position:absolute;right:0;top:30px;background:var(--paper);border:1px solid var(--line);padding:6px 10px;z-index:8;max-height:260px;overflow:auto;min-width:200px}.colmenu label{display:flex;gap:6px;align-items:center;padding:3px 0;font-size:12px;white-space:nowrap}.stepper{display:flex;margin:0 0 12px;flex-wrap:wrap}.stepper span{flex:1 1;padding:6px 8px;border:1px solid var(--line);margin-right:-1px;font-size:12px;text-align:center;background:var(--paper);min-width:96px}.stepper span.done{background:var(--forest);color:#fff}.stepper span.cur{background:var(--marigold);color:#000}.kv{max-width:860px}.kv .sheet td:first-child,.kv .sheet th[scope=row]{width:200px;font-weight:600;background:var(--sage);text-align:left}.kv h3{margin:14px 0 6px}.console-form{display:grid;grid-template-columns:180px 1fr;grid-gap:6px 10px;gap:6px 10px;align-items:center;max-width:620px;border:1px solid var(--line);padding:12px}.console-form label{font-weight:600}.console-form input,.console-form select,.console-form textarea{height:28px;border:1px solid var(--line);padding:0 6px;width:100%;background:var(--paper)}.console-form textarea{height:56px;padding:4px 6px}.console-form .full{grid-column:1/-1}.console-form .fine{font-size:12px}@media (max-width:900px){.shell{grid-template-columns:1fr}.shell aside{position:static;height:auto}.filters{width:100%;border-right:0;border-bottom:1px solid var(--line)}.sheet-body{flex-direction:column}}.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--forest);color:#fff;padding:12px 18px;font-weight:700;text-decoration:none}.skip:focus{left:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}