:root{--bg: #f3f5f7;--card: #ffffff;--ink: #14201a;--ink-2: #3d4a44;--muted: #6b7772;--accent: #2f7d4f;--accent-ink: #1f5c39;--accent-soft: #e4f2ea;--accent-ring: rgba(47,125,79,.25);--warn: #9a5b0b;--warn-soft: #fbeedb;--err: #b3261e;--err-soft: #fbe4e2;--info: #1d5fa3;--info-soft: #e1ecfa;--line: #e3e7ea;--line-strong: #cfd6db;--nav: #16221c;--nav-2: #1e2d25;--nav-ink: #c9d6cf;--nav-active: #2f7d4f;--radius: 14px;--radius-s: 9px;--shadow: 0 1px 2px rgba(20,32,26,.05), 0 6px 20px -8px rgba(20,32,26,.12);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font:14px/1.5 var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0 0 10px;line-height:1.25;letter-spacing:-.01em;color:var(--ink)}h2{font-size:20px;font-weight:700}h3{font-size:15px;font-weight:650}h4{font-size:13px;font-weight:650;color:var(--ink-2);margin-top:6px}p{margin:6px 0}a{color:var(--accent-ink)}small{font-size:12px}header.top{position:sticky;top:0;z-index:20;height:56px;background:#fff;border-bottom:1px solid var(--line);padding:0 20px;display:flex;gap:14px;align-items:center}header.top .brand{font-weight:750;font-size:15px;letter-spacing:-.01em;display:flex;align-items:center;gap:9px}header.top .brand .logo{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#2f7d4f,#5aa87a);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:15px}header.top .crumb{color:var(--muted);font-size:13px;display:flex;gap:8px;align-items:center}header.top .crumb b{color:var(--ink);font-weight:600}header.top .spacer{flex:1}header.top .user{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:600;font-size:13px}header.top .user .avatar{width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}header.top button{padding:7px 12px;font-size:13px}.app-layout{display:flex;align-items:stretch;min-height:calc(100vh - 56px)}.sidebar{flex:0 0 248px;background:linear-gradient(180deg,var(--nav),var(--nav-2));color:var(--nav-ink);padding:16px 12px 24px;position:sticky;top:56px;height:calc(100vh - 56px);overflow:auto}.sidebar select{width:100%;margin-bottom:14px;background:#ffffff0f;color:#eef3ef;border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:9px 10px;font-weight:600}.sidebar select option{color:var(--ink);background:#fff}.sidebar .section-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7e9488;padding:14px 12px 6px;font-weight:700}.sidebar .item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--nav-ink);cursor:pointer;text-decoration:none;margin-bottom:2px;font-weight:500;transition:background .12s,color .12s;-webkit-user-select:none;user-select:none}.sidebar .item .ico{width:20px;text-align:center;opacity:.85;font-size:15px}.sidebar .item:hover{background:#ffffff12;color:#fff}.sidebar .item.active{background:var(--nav-active);color:#fff;font-weight:650;box-shadow:0 4px 14px -6px #2f7d4fe6}.sidebar hr{border:0;border-top:1px solid rgba(255,255,255,.1);margin:12px 0}.sidebar .foot{margin-top:auto;padding:14px 12px 0;font-size:11px;color:#6f8478}.content{flex:1 1 auto;padding:22px 26px 40px;max-width:1400px;min-width:0}main{padding:22px 26px;max-width:1400px;margin:0 auto}.page-title{display:flex;align-items:baseline;gap:12px;margin:0 0 14px}.page-title h1{font-size:22px;margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px;box-shadow:var(--shadow)}.card .card{box-shadow:none;background:#fafbfb}.card h2{margin-bottom:12px}.card.err{border-color:#f1c9c5;background:var(--err-soft);color:var(--err)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:4px 0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.grid>button{padding:16px;text-align:left;line-height:1.35}button{background:var(--accent);color:#fff;border:1px solid transparent;border-radius:var(--radius-s);padding:8px 15px;cursor:pointer;font:inherit;font-weight:600;font-size:13.5px;line-height:1.3;transition:background .12s,box-shadow .12s,transform .05s;white-space:nowrap}button:hover{background:var(--accent-ink)}button:active{transform:translateY(1px)}button:focus-visible{outline:0;box-shadow:0 0 0 3px var(--accent-ring)}button.secondary{background:#fff;color:var(--ink);border-color:var(--line-strong);font-weight:550}button.secondary:hover{background:#f4f6f7;border-color:#b9c3ca}button:disabled,button:disabled:hover{opacity:.5;cursor:default;background:var(--accent)}button.secondary:disabled,button.secondary:disabled:hover{background:#fff}input,select,textarea{padding:8px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:#fff;font:inherit;font-size:13.5px;color:var(--ink);min-height:36px;transition:border-color .12s,box-shadow .12s}input::placeholder,textarea::placeholder{color:#9aa5a0}input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}input[type=checkbox],input[type=radio]{min-height:0;width:16px;height:16px;accent-color:var(--accent);vertical-align:-2px;margin:0 4px 0 0}input[type=file]{padding:6px}label{display:inline-flex;align-items:center;gap:4px;color:var(--ink-2)}select{padding-right:28px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%236b7772' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M2.5 4.5 6 8l3.5-3.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}th{background:#f7f9fa;position:sticky;top:0;z-index:1;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}tbody tr:hover>td{background:#f8faf9}tbody tr:last-child>td{border-bottom:0}td .row{margin:0}.scroll{overflow:auto;max-height:62vh;border:1px solid var(--line);border-radius:10px}.scroll table th{top:0}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:#eef1f3;color:var(--ink-2);line-height:1.5;vertical-align:middle}.badge.error{background:var(--err-soft);color:var(--err)}.badge.warning{background:var(--warn-soft);color:var(--warn)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.ok{background:var(--accent-soft);color:var(--accent-ink)}.state{font-weight:650}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px}.raw{color:#8a948f}.norm{color:var(--ink)}.err{color:var(--err)}.muted{color:var(--muted)}pre{background:#f7f9fa;border:1px solid var(--line);border-radius:10px;padding:10px 12px;overflow:auto}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 600px at 10% -10%,#dcefe3 0%,transparent 60%),radial-gradient(900px 500px at 110% 110%,#e5edf7 0%,transparent 60%),var(--bg);padding:24px}.login{width:100%;max-width:400px;padding:28px 28px 24px}.login .brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:16px;margin-bottom:18px}.login .brand .logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#2f7d4f,#5aa87a);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px}.login h2{font-size:22px;margin-bottom:4px}.login .sub{color:var(--muted);margin-bottom:18px}.login label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin:10px 0 4px}.login input{width:100%}.login button{width:100%;margin-top:16px;padding:11px;font-size:14px}.steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.steps span{padding:5px 12px;border-radius:999px;background:#eef1f3;color:var(--muted);font-size:12.5px;font-weight:600}.steps span.active{background:var(--accent);color:#fff}.steps span.done{background:var(--accent-soft);color:var(--accent-ink)}.cell-diff{display:flex;flex-direction:column}.empty{color:var(--muted);text-align:center;padding:26px 10px}@media(max-width:900px){.app-layout{flex-direction:column}.sidebar{flex:none;position:static;height:auto;width:100%;display:flex;flex-wrap:wrap;gap:4px;padding:10px}.sidebar select{width:100%;margin-bottom:6px}.sidebar .section-label{width:100%;padding:8px 12px 2px}.sidebar .item{padding:7px 11px}.content{padding:14px}header.top .crumb{display:none}}@media print{header.top,.sidebar,.no-print{display:none!important}body{background:#fff}.app-layout,.content{display:block;margin:0;padding:0;max-width:none}.print-area{border:0;box-shadow:none}}
