:root{--navy:#172339;--blue:#145bd8;--text:#1b293b;--muted:#64748b;--border:#dce3ec;--bg:#f3f6fa;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text)}.top{height:75px;display:flex;justify-content:space-between;align-items:center;padding:12px 25px;background:white;border-bottom:1px solid var(--border)}.brand{display:flex;gap:12px;align-items:center}.brand strong{font-size:20px}.brand small{display:block;color:var(--muted);font-size:12px}.logo{background:#126fc7;color:white;font-size:24px;border-radius:50%;width:44px;height:44px;display:grid;place-items:center}.topright{display:flex;gap:20px;align-items:center}.shell{display:flex;min-height:calc(100vh - 75px)}.sidebar{width:220px;background:var(--navy);color:white;padding:28px 12px;display:flex;flex-direction:column}.sideheading{font-size:12px;text-transform:uppercase;color:#aebcd0;padding:8px 12px 20px;letter-spacing:.07em}.side{color:#ced7e6;text-decoration:none;padding:14px 16px;border-radius:8px;display:block;margin:3px 0}.side.active{background:#205bd0;color:white;font-weight:700}.sidefoot{margin-top:auto;color:#aebcd0;font-size:11px;padding:10px}.content{flex:1;min-width:0;padding:28px;max-width:1700px}.pagetitle h1{font-size:27px;margin:0}.pagetitle p{color:var(--muted);margin:5px 0 20px}.statbar{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.stat{background:white;padding:16px 20px;border:1px solid var(--border);border-radius:11px}.stat span{color:var(--muted);font-size:12px;display:block}.stat b{font-size:26px}.panels{display:grid;grid-template-columns:minmax(290px,.85fr) minmax(520px,1.6fr);gap:15px}.panel{background:white;border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 4px #1428440b}.panelhead{padding:19px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}h2{font-size:19px;margin:0}.panelhead p{font-size:12px;color:var(--muted);margin:5px 0 0}.btn{border:1px solid var(--border);background:white;border-radius:7px;padding:10px 14px;cursor:pointer;font-weight:650;text-decoration:none;color:var(--text);font-size:13px;display:inline-block}.btn.primary{background:var(--blue);color:white;border-color:var(--blue)}.btn.danger{background:#c72b38;color:white;border-color:#c72b38}.btn.ghost{background:white}.searchform{display:flex;gap:6px;margin:14px}.searchform input{flex:1;min-width:0}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{background:#f2f5f9;color:#304159;padding:13px 12px}td{border-top:1px solid var(--border);padding:15px 12px;white-space:nowrap}tr.chosen{background:#e5f0ff}tbody tr{cursor:pointer}tbody tr:hover{background:#edf4ff}.pill{background:#e9edf3;border-radius:99px;padding:5px 8px;font-size:11px}.pill.good{background:#def7e9;color:#117046}.pill.bad{background:#ffe5e6;color:#a72a35}.hint{font-size:12px;color:var(--muted);padding:8px 14px}.formgrid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1fr);gap:22px;padding:22px}.fields{display:flex;flex-direction:column;gap:13px}label{display:block;font-size:13px;font-weight:650}input:not([type=checkbox]),select{display:block;width:100%;padding:11px 12px;font:inherit;border:1px solid #cbd5e1;border-radius:6px;margin-top:7px;background:#fff;color:var(--text);min-width:0}input:focus,select:focus{outline:2px solid #9dc7ff}.dategroup{background:#f4f7fa;border-radius:8px;padding:13px}.dategroup b{font-size:13px}.datefields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.checkrow{display:flex;align-items:center;gap:8px}.preview{display:flex;flex-direction:column;gap:14px}.previewbox{border:1px solid var(--border);padding:14px;border-radius:10px}.photoempty{height:240px;background:linear-gradient(130deg,#dce8f4,#f5f8fc);margin-top:12px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#355879;border-radius:7px;text-align:center}.photoempty div{font-size:48px}.photoempty span{font-size:12px}.infobox{background:#eaf2ff;padding:15px;border-radius:9px;font-size:13px}.infobox p{margin:7px 0 0;color:#49617d}.actions{display:flex;gap:10px;align-items:center;padding:18px 22px;border-top:1px solid var(--border)}.actions .danger{margin-left:auto}.flash{margin:12px auto;max-width:1180px;padding:11px 18px;border-radius:7px;background:#dff7ea;color:#146042}.flash.error{background:#fde6e6;color:#a2202a}.loginwrap{min-height:calc(100vh - 75px);display:grid;place-items:center}.login{width:min(450px,93vw);padding:32px}.login h1{margin:4px 0}.login label{margin-top:18px}.login .full{width:100%;margin-top:23px}.muted{color:var(--muted)}.iconbig{font-size:40px;color:var(--blue)}.gallery{max-width:1200px;margin:40px auto;padding:0 18px}.intro{padding:18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.intro p{margin:6px 0;color:var(--muted)}.intro form{display:flex;align-items:end;gap:10px}.photogrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:15px;margin-top:20px}.photocell{overflow:hidden}.photocell img{display:block;width:100%;aspect-ratio:9/10;object-fit:contain;background:#101723}.photocell>div{padding:13px;display:flex;justify-content:space-between}.photocell span{color:var(--muted)}.empty{padding:50px 25px;text-align:center;margin-top:20px}@media(max-width:1150px){.panels{grid-template-columns:1fr}.sidebar{width:185px}}@media(max-width:720px){.sidebar{display:none}.content{padding:16px}.statbar{grid-template-columns:repeat(3,1fr)}.stat{padding:10px}.stat b{font-size:19px}.formgrid{grid-template-columns:1fr}.panelhead{flex-wrap:wrap}.intro{flex-direction:column;align-items:stretch}}
