:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f5f7f8;color:#1c2528;line-height:1.35}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f5f7f8}button,input,select,textarea{font:inherit}.shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:#fff;border-right:1px solid #d9e0e2;padding:18px 14px}.brand{display:flex;align-items:center;gap:12px;padding:8px 10px 18px;color:#1f4d45}.brand strong,.brand span{display:block}.brand span{color:#5f6f73;font-size:.88rem}nav{display:grid;gap:4px}nav button{display:flex;align-items:center;gap:10px;min-height:42px;border:0;border-radius:8px;background:transparent;color:#354347;padding:0 10px;cursor:pointer;text-align:left}nav button:hover,nav .nav-active{background:#e7f3ef;color:#17483f}.main{min-width:0;padding:22px}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:76px;border-bottom:1px solid #d9e0e2;margin-bottom:22px}.topbar p,.topbar h1{margin:0}.topbar p{color:#68797d;font-size:.88rem}.topbar h1{font-size:1.6rem;letter-spacing:0}.user-menu{display:flex;align-items:center;gap:10px;color:#284146}.user-menu strong,.user-menu span{display:block;text-align:right}.user-menu span{color:#68797d;font-size:.82rem}.login-page{min-height:100vh;display:grid;place-items:center;padding:22px;background:#eaf0ee}.login-card{width:min(100%,420px);display:grid;gap:16px;background:#fff;border:1px solid #d5dedf;border-radius:8px;padding:28px;box-shadow:0 18px 50px #1f4d4521}.login-card p,.login-card h1{margin:0}.login-card p{color:#68797d;font-size:.9rem}.login-card h1{font-size:1.45rem;letter-spacing:0}.login-mark{width:52px;height:52px;display:grid;place-items:center;color:#fff;background:#216c5e;border-radius:8px}.login-button{width:100%}.page{display:grid;gap:18px}.page.narrow{max-width:980px}h2,h3{margin:0}h2{font-size:1.25rem}h3{font-size:1rem}.toolbar,.form-title,.footer-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.button,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;min-height:38px;cursor:pointer}.button{background:#216c5e;color:#fff;padding:0 14px}.button:hover{background:#19584d}.button:disabled,.icon-button:disabled{opacity:.45;cursor:not-allowed}.button-secondary{background:#fff;color:#1f4d45;border-color:#b7c9c4}.button-secondary:hover{background:#edf6f3}.icon-button{width:36px;height:36px;background:#fff;border-color:#ccd5d8;color:#284146}.icon-button:hover{background:#eef3f4}.icon-button.danger{color:#aa3b31;border-color:#e7beb8}.alert,.success,.loading{border-radius:8px;padding:12px 14px}.alert{background:#fff0ed;color:#8f2f26;border:1px solid #edc8c2}.success{background:#e9f7ef;color:#236242;border:1px solid #b7dbc5}.loading{background:#eef3f4;color:#53666b}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{background:#fff;border:1px solid #d9e0e2;border-radius:8px;padding:16px}.metric span,.sync-tile span{display:block;color:#68797d;font-size:.86rem}.metric strong{display:block;margin-top:8px;font-size:1.8rem}.metric-warn{border-left:4px solid #d49524}.metric-danger{border-left:4px solid #c94a3d}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.split>section,.panel-form,.settings-env{background:#fff;border:1px solid #d9e0e2;border-radius:8px;padding:16px}.filters,.grid-form{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.grid-form.two{grid-template-columns:repeat(2,minmax(150px,1fr))}.panel-form{display:grid;gap:14px}.field{display:grid;gap:6px;min-width:0}.field span{color:#43565b;font-size:.86rem;font-weight:650}.input{width:100%;min-height:38px;border:1px solid #cbd5d8;border-radius:8px;background:#fff;color:#1c2528;padding:8px 10px}.input:focus{outline:2px solid #95cbbf;border-color:#216c5e}.textarea{resize:vertical}.picker{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr);gap:12px}.table-wrap{overflow:auto;background:#fff;border:1px solid #d9e0e2;border-radius:8px}table{width:100%;border-collapse:collapse;min-width:860px}th,td{padding:10px 12px;border-bottom:1px solid #edf1f2;text-align:left;vertical-align:top;font-size:.92rem}th{background:#f7faf9;color:#526468;font-weight:700}tr:hover td{background:#fbfdfc}.empty{color:#68797d;text-align:center;padding:20px}.badge{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:999px;padding:0 9px;font-size:.75rem;font-weight:800;white-space:nowrap}.badge-good{color:#1f6243;background:#dff2e7}.badge-danger{color:#9d342b;background:#ffe5df}.badge-warn{color:#8b5b14;background:#fff0c8}.badge-muted{color:#5d6a6e;background:#ecf0f1}.badge-info{color:#255d7f;background:#e1f0f7}.actions{display:flex;gap:6px;align-items:center}.component-list{display:grid;gap:10px}.component-row{display:grid;grid-template-columns:minmax(360px,1fr) minmax(160px,220px) 40px;gap:10px;align-items:end;border:1px solid #e1e7e9;border-radius:8px;padding:10px}.component-row.compact{grid-template-columns:repeat(5,minmax(120px,1fr)) 40px}.availability{border:1px solid #b9d8ce;border-radius:8px;background:#eff8f5;padding:12px}.availability ul{margin:8px 0 0;padding-left:18px}.sync-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.sync-tile{display:grid;gap:10px;background:#fff;border:1px solid #d9e0e2;border-radius:8px;padding:14px}.settings-env{display:flex;flex-wrap:wrap;gap:8px}.settings-env h3{flex-basis:100%}.settings-env code{background:#eef3f4;color:#284146;border-radius:6px;padding:6px 8px}@media(max-width:1050px){.shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}nav{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics,.split,.sync-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filters,.grid-form,.grid-form.two,.picker,.component-row,.component-row.compact{grid-template-columns:1fr}}@media(max-width:620px){.main{padding:14px}nav,.metrics,.split,.sync-grid{grid-template-columns:1fr}.topbar{align-items:flex-start}}
