:root{--bg: #0f1419;--surface: #1a222d;--border: #2d3a4a;--text: #e8eef4;--muted: #8b9aab;--accent: #3d9cf5;--accent-dim: #2563a8;--danger: #f47272;--ok: #6ee7a8;font-family:DM Sans,system-ui,sans-serif;color:var(--text);background:var(--bg);line-height:1.45}*{box-sizing:border-box}body{margin:0;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1rem .75rem;position:sticky;top:0;height:100vh}.sidebar-brand{font-weight:700;font-size:1.05rem;padding:.25rem .5rem 1rem;border-bottom:1px solid var(--border);margin-bottom:.75rem}.sidebar-brand a{color:var(--text);text-decoration:none}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem;flex:1}.sidebar-link{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .65rem;border-radius:8px;color:var(--muted);text-decoration:none;font-size:.95rem}.sidebar-link:hover{background:#243041;color:var(--text);text-decoration:none}.sidebar-link.active{background:#2a3a55;color:var(--text)}.sidebar-footer{border-top:1px solid var(--border);padding-top:.75rem;margin-top:.75rem}.sidebar-user{margin-bottom:.65rem;padding:0 .35rem}.sidebar-user-name{font-size:.9rem;font-weight:600}.sidebar-user-email{font-size:.78rem;color:var(--muted);word-break:break-all}.sidebar-logout{width:100%}.main-content{flex:1;min-width:0;padding:1rem 1.5rem 3rem;max-width:1100px}.page-header{padding-bottom:1rem;margin-bottom:1rem;border-bottom:1px solid var(--border)}.page-header h1{margin:0;font-size:1.25rem;font-weight:600}.page-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav-count{min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.inbox-bell{position:relative}.inbox-bell-btn{position:relative;width:2.4rem;height:2.4rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1.1rem;cursor:pointer}.inbox-bell-btn:hover{border-color:var(--accent-dim)}.inbox-badge{position:absolute;top:-.35rem;right:-.35rem;min-width:1.15rem;height:1.15rem;padding:0 .28rem;border-radius:999px;background:var(--danger);color:#fff;font-size:.68rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.inbox-toast{position:absolute;right:0;top:calc(100% + .4rem);z-index:30;width:min(280px,80vw);padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--surface);box-shadow:0 8px 24px #00000059;font-size:.85rem;display:flex;flex-direction:column;gap:.5rem}.inbox-dropdown{position:absolute;right:0;top:calc(100% + .45rem);z-index:25;width:min(360px,86vw);max-height:420px;overflow:auto;border-radius:12px;border:1px solid var(--border);background:var(--surface);box-shadow:0 10px 28px #0006}.inbox-dropdown-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.7rem .8rem;border-bottom:1px solid var(--border)}.inbox-empty{margin:0;padding:.9rem;color:var(--muted);font-size:.88rem}.inbox-list{list-style:none;margin:0;padding:0}.inbox-list li a{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .85rem;color:inherit;text-decoration:none;border-bottom:1px solid var(--border)}.inbox-list li a:hover{background:#243041}.inbox-list li.unread a{background:#1d2d44}.inbox-item-title{font-weight:600;font-size:.88rem}.inbox-item-body{color:var(--muted);font-size:.8rem}.inbox-item-time{color:var(--muted);font-size:.75rem}.row-fresh td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.dot-new{display:inline-block;width:.45rem;height:.45rem;margin-left:.4rem;border-radius:50%;background:var(--accent);vertical-align:middle}@media(max-width:768px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.sidebar-nav{flex-direction:row;flex-wrap:wrap}}.layout{max-width:1100px;margin:0 auto;padding:1rem 1.25rem 3rem}header.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 0 1.25rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem}header.top h1{margin:0;font-size:1.15rem;font-weight:600}header.top nav{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.45rem .85rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.btn:hover{border-color:var(--accent-dim)}.btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent-dim));border-color:transparent;color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem;margin-bottom:1rem}.grid{display:grid;gap:1rem}@media(min-width:720px){.grid.two{grid-template-columns:1fr 1fr}}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.25rem}input,select,textarea{width:100%;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:#121920;color:var(--text);font:inherit}textarea{min-height:100px;resize:vertical}.field{margin-bottom:.75rem}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:.5rem .4rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600}.badge{display:inline-block;padding:.15rem .45rem;border-radius:6px;font-size:.78rem;background:#243041}.badge.new{background:#2a3a55}.badge.closed{background:#1e4d36}details.ocr-fold{margin-top:.35rem}details.ocr-fold summary{cursor:pointer;color:var(--muted);font-size:.85rem;-webkit-user-select:none;user-select:none}details.ocr-fold pre{white-space:pre-wrap;font-size:.82rem;color:var(--muted);margin:.35rem 0 0;max-height:120px;overflow:auto}.meter-table-wrap{overflow-x:auto}.meter-table input,.meter-table select{min-width:80px;font-size:.88rem;padding:.35rem .45rem}.meter-table th{font-size:.78rem;white-space:nowrap}.error{color:var(--danger);font-size:.9rem}.stack{display:flex;flex-direction:column;gap:.5rem}
