.app-shell{display:flex;min-height:100vh}.app-nav{width:220px;background:var(--surface);border-right:1px solid var(--border);padding:1.25rem 1rem;box-shadow:var(--shadow)}.app-nav h1{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text)}.app-nav ul{list-style:none;margin:0;padding:0}.app-nav li{margin-bottom:.35rem}.app-nav a{display:block;padding:.45rem .6rem;border-radius:6px;color:var(--text);text-decoration:none;font-size:.95rem}.app-nav a:hover{background:var(--bg);text-decoration:none}.app-nav a.active{background:#eff6ff;color:var(--accent);font-weight:500}.app-main{flex:1;padding:1.5rem 2rem;max-width:1200px}.page-title{font-size:1.35rem;font-weight:600;margin:0 0 1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow)}.muted{color:var(--muted);font-size:.9rem}.grid-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.stat .value{font-size:1.5rem;font-weight:600}.stat .label{font-size:.85rem;color:var(--muted)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th,table.data td{text-align:left;padding:.55rem .65rem;border-bottom:1px solid var(--border)}table.data th{font-weight:600;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.02em}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.45rem .9rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.form-row{margin-bottom:.85rem}.form-row label{display:block;font-size:.85rem;font-weight:500;margin-bottom:.25rem}.form-row input[type=text],.form-row input[type=password],.form-row input[type=datetime-local],.form-row select{width:100%;max-width:320px;padding:.45rem .55rem;border:1px solid var(--border);border-radius:6px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow)}.login-card h1{margin:0 0 .5rem;font-size:1.25rem}.badge{display:inline-block;padding:.15rem .45rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#ecfdf5;color:#047857}.badge.warn{background:#fef3c7;color:#b45309}.tabs{display:flex;gap:.5rem;margin-bottom:1rem}.tabs button{padding:.4rem .85rem;border:1px solid var(--border);background:var(--surface);border-radius:6px}.tabs button.active{background:#eff6ff;border-color:var(--accent);color:var(--accent);font-weight:500}.error-msg{color:var(--danger);font-size:.9rem;margin-top:.5rem}.placeholder-box{border:1px dashed var(--border);border-radius:var(--radius);padding:1rem;color:var(--muted);font-size:.9rem}*,*:before,*:after{box-sizing:border-box}:root{--bg: #f4f6f9;--surface: #ffffff;--text: #1a1d26;--muted: #5c6473;--border: #e2e6ef;--accent: #2563eb;--accent-hover: #1d4ed8;--danger: #b91c1c;--radius: 10px;--shadow: 0 1px 3px rgba(15, 23, 42, .08);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}body{margin:0;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}
