:root{--navy:#0a2341;--deep:#071a31;--blue:#116add;--cyan:#10b9d7;--ink:#172945;--muted:#75859c;--line:#e2e9f3;--canvas:#f3f6fb;--green:#148760;--amber:#bd7d11;--red:#ca4252;--shadow:0 8px 28px rgba(20,45,88,.055);font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-size:13px;line-height:1.55}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}img{max-width:100%}.app{display:flex;min-height:100vh}.sidebar{width:249px;flex:none;background:linear-gradient(172deg,#0b3159,#082443 50%,#06192e);color:#b9cae0;height:100vh;overflow:auto;position:sticky;top:0;padding:22px 14px}.brand,.authbrand{display:flex;align-items:center;gap:12px}.brand{padding:5px 10px 22px;color:white;border-bottom:1px solid #ffffff1a;margin-bottom:17px}.brandmark{display:grid;place-items:center;width:46px;height:46px;background:linear-gradient(135deg,#02c8ee,#1464e8);color:white;font-weight:900;border-radius:13px;letter-spacing:-1px;box-shadow:0 5px 18px #068ce543}.brand strong,.authbrand strong{display:block;line-height:1.2;font-size:14px}.brand small,.authbrand small{display:block;font-size:10px;letter-spacing:.2px;color:#96b5d5;margin-top:5px}.navlabel{font-size:10px;font-weight:800;letter-spacing:1.3px;color:#7995b2;text-transform:uppercase;padding:14px 12px 6px}.navlink{display:flex;gap:12px;align-items:center;padding:11px 12px;border-radius:10px;color:#bccce0;font-weight:650;font-size:12.5px;margin:1px 0}.navlink:hover{background:#ffffff17;color:white}.navlink.active{background:linear-gradient(110deg,#176be6,#1560c8);color:#fff;box-shadow:0 5px 13px #06316a88}.navico{display:inline-grid;place-items:center;width:20px;text-align:center;font-size:17px;font-weight:700;opacity:.94}.sidefooter{border-top:1px solid #ffffff1a;margin-top:27px;padding:20px 11px;color:#83a3c3;font-size:10px;line-height:1.8}.main{min-width:0;flex:1}.topbar{height:72px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 31px;position:sticky;top:0;z-index:20;backdrop-filter:blur(9px)}.topbarleft{display:flex;align-items:center;gap:16px}.topbartitle{font-weight:820;font-size:13px}.topbarsub{color:var(--muted);font-size:10px}.topright{display:flex;align-items:center;gap:12px}.avatar{width:35px;height:35px;border-radius:50%;background:#d9eaff;color:#0a59be;display:grid;place-items:center;font-weight:850}.avatartext strong{display:block;font-size:11px}.avatartext small{display:block;font-size:10px;color:var(--muted)}.workspace{max-width:1600px;padding:26px 30px 52px;margin:auto}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.eyebrow{font-size:10px;color:var(--blue);font-weight:850;text-transform:uppercase;letter-spacing:1.1px;margin-bottom:6px}.pagetitle{margin:0;font-weight:830;font-size:25px;letter-spacing:-.65px}.subtitle{margin:7px 0 0;color:var(--muted);font-size:12px}.headbuttons{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.grid{display:grid;gap:16px}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1.38fr) minmax(310px,.78fr)}.splitwide{grid-template-columns:minmax(0,1.65fr) minmax(300px,.9fr)}.panel{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow);min-width:0}.panel h3,.panel h4{margin:0}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.paneltitle{font-weight:820;font-size:14px}.panelsub{color:var(--muted);font-size:11px;margin-top:5px}.stat{display:flex;gap:14px;align-items:flex-start;min-height:132px}.statico{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:20px}.statico.blue{background:#e7f0ff;color:#1369da}.statico.green{background:#def7ed;color:#16865d}.statico.cyan{background:#e1f9fc;color:#0f93a7}.statico.amber{background:#fff2df;color:#b37b15}.statlabel{color:var(--muted);font-size:11px}.statvalue{font-size:26px;font-weight:850;letter-spacing:-.8px;line-height:1.2;margin:7px 0}.statfoot{font-size:10px;color:var(--muted)}.banner{position:relative;background:linear-gradient(110deg,#0a315e,#125cba 64%,#008bab);color:white;border-radius:14px;padding:22px 26px;overflow:hidden;min-height:135px;display:flex;align-items:center;justify-content:space-between;gap:20px}.banner:before,.banner:after{content:"";position:absolute;border:1px solid #ffffff2b;border-radius:50%;height:310px;width:310px;right:-56px;top:-116px}.banner:after{height:220px;width:220px;right:113px;top:-52px}.banner h2{font-size:19px;line-height:1.3;margin:0;position:relative;z-index:1}.banner p{color:#d1eaff;max-width:660px;font-size:12px;line-height:1.7;position:relative;z-index:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:9px;border:1px solid var(--line);background:white;color:#3f5571;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer;transition:.15s}.btn:hover{box-shadow:0 4px 12px #244a8217;transform:translateY(-1px)}.btn.primary{background:linear-gradient(110deg,#1677e9,#105ccf);color:white;border-color:transparent;box-shadow:0 5px 14px #1268dd2a}.btn.danger{color:var(--red);background:#fff4f5;border-color:#ffdbdf}.btn.mini{font-size:10.5px;padding:7px 10px}.btn.lightblue{background:#eaf3ff;color:#1764cb;border-color:#deebff}.btn:disabled{opacity:.45;cursor:not-allowed}.tablewrap{overflow:auto;width:100%}table{border-collapse:collapse;width:100%;min-width:560px;font-size:12px}th{background:#f6f8fc;font-size:10.5px;font-weight:850;color:#7c8da4;text-align:left;padding:13px;white-space:nowrap}td{border-bottom:1px solid #eef1f6;padding:12px 13px;vertical-align:middle;color:#435672}tbody tr:hover td{background:#fafcff}tbody tr:last-child td{border-bottom:0}.link{color:#1168d4;font-weight:760}.chip{display:inline-flex;align-items:center;border-radius:99px;padding:4px 9px;font-size:10px;font-weight:800;white-space:nowrap}.chip.green{background:#e1f7eb;color:#168355}.chip.blue{background:#e5f0ff;color:#176bcf}.chip.yellow{background:#fff2d8;color:#b47a1c}.chip.red{background:#ffe7eb;color:#c34559}.chip.gray{background:#f0f3f8;color:#687d96}.muted{color:var(--muted)}.small{font-size:11px}.caption{color:var(--muted);font-size:10px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:11px;color:#4a5e79;font-weight:760}.field.wide,.wide{grid-column:1/-1}.input,.select,.textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;padding:10px 12px;outline:0;background:white;color:#2d4262;font-size:12px;font-weight:450}.textarea{resize:vertical;min-height:86px;line-height:1.6}.input:focus,.select:focus,.textarea:focus{border-color:#6dacfa;box-shadow:0 0 0 3px #0c73eb12}.hint{font-weight:450;color:var(--muted);font-size:10px}.alert{border:1px solid #d7e9ff;background:#edf6ff;color:#1d5c9b;border-radius:10px;padding:13px 16px;margin-bottom:17px;font-size:12px}.alert.ok{color:#127150;background:#e7f7ee;border-color:#b4e6cd}.alert.error{color:#a83241;background:#fff0f2;border-color:#ffd0d7}.toolbar{display:flex;align-items:center;gap:9px;margin-bottom:14px;flex-wrap:wrap}.toolbar .input{max-width:290px}.divider{height:1px;background:var(--line);margin:20px 0}.sectiontitle{font-size:15px;font-weight:820;margin:0 0 12px}.help{background:#f6f9fe;border:1px dashed #d2e1f4;border-radius:10px;padding:12px 14px;color:#6c819c;font-size:11px;line-height:1.65}.detailslist{display:grid;gap:8px}.detailsrow{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #eff2f7;padding:9px 0;font-size:11px}.detailsrow:last-child{border:none}.detailsrow b{text-align:right}.tableactions{display:flex;flex-wrap:wrap;gap:6px}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.nowrap{white-space:nowrap}.empty{padding:34px;text-align:center;color:var(--muted);font-size:12px}.pillstep{display:inline-flex;gap:7px;align-items:center;padding:9px 12px;border:1px solid var(--line);background:white;border-radius:10px;font-size:11px;font-weight:730}.pillstep.on{border-color:#8ec0ff;background:#eff7ff;color:#0c68db}.progress{height:8px;background:#eaf0f8;border-radius:30px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#1375ec,#30c3d0)}.checkitem{padding:16px;border:1px solid var(--line);border-radius:12px;margin:12px 0;background:#fff}.checkitem h4{font-size:12px;margin:0}.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(134px,1fr));gap:12px}.photo{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f9fbff}.photo img{width:100%;height:110px;object-fit:cover;display:block}.photometa{padding:9px;font-size:10px}.photo .btn{margin-top:6px}.log{border-left:2px solid #dce6f4;padding:0 0 17px 17px;margin-left:5px;position:relative}.log:before{position:absolute;content:"";background:#3a8ae7;width:9px;height:9px;border-radius:50%;left:-5.5px;top:3px}.log strong{font-size:11px}.signature-pad{display:block;width:100%;max-width:550px;height:170px;border:1px dashed #b7cae2;border-radius:11px;background:#fbfdff;touch-action:none}.sighelp{font-size:10px;color:var(--muted);margin:7px 0 12px}.dynamicrow{display:flex;gap:8px;align-items:center;margin-bottom:8px}.dynamicrow .input{flex:1}.movegrp{display:flex;gap:4px}.template-counter{color:#1765c9;font-weight:850}.filters{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.filters .select{width:auto;min-width:150px}.authbody{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(ellipse at 85% 12%,#e2eeff 0%,transparent 38%),linear-gradient(115deg,#ebf1f9,#f7f9fc);padding:24px}.authpanel,.installpanel{width:min(100%,465px);background:white;border:1px solid var(--line);border-radius:20px;padding:34px;box-shadow:0 16px 60px #173c6a15}.installpanel{width:min(100%,700px)}.authbrand{margin-bottom:30px}.authbrand small{color:var(--muted)}.authpanel h1,.installpanel h1{font-size:24px;margin:0 0 8px}.authpanel p,.installpanel p{line-height:1.65}.authpanel .field{margin-bottom:16px}.loginfooter{color:var(--muted);text-align:center;font-size:10px;margin-top:25px}.installpanel h3{margin:26px 0 14px}.menuToggle{display:none}.onlymobile{display:none}.reportpaper{max-width:1000px;margin:auto;background:white;padding:36px;border:1px solid #e1e7ee}.reportpaper h1{font-size:20px}.reportmeta{display:flex;justify-content:space-between;gap:15px}.signphoto{max-height:100px;max-width:220px}.listplain{margin:0;padding-left:20px}.listplain li{margin:7px 0}.printonly{display:none}
@media (max-width:1160px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.split,.splitwide{grid-template-columns:1fr}.sidebar{width:218px}.workspace{padding:24px 20px}.topbar{padding:0 20px}}
@media (max-width:820px){.app{display:block}.sidebar{display:none;position:fixed;z-index:50;left:0;top:0;height:100vh;width:270px;box-shadow:0 8px 40px #001c3e55}.sidebar.open{display:block}.main{width:100%}.menuToggle{display:inline-flex}.topbar{height:64px;padding:0 16px}.workspace{padding:20px 14px 38px}.pagehead{align-items:flex-start;flex-direction:column;margin-bottom:18px}.pagetitle{font-size:21px}.onlymobile{display:inline-block}.avatartext{display:none}.g3,.g2{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.formgrid .wide{grid-column:auto}.panel{padding:16px}.banner{padding:20px}.reportpaper{padding:16px}.filters .select{max-width:100%}}
@media (max-width:540px){.g4{grid-template-columns:1fr 1fr;gap:10px}.stat{min-height:120px;padding:14px;gap:8px}.statico{width:34px;height:34px;font-size:16px}.statvalue{font-size:22px}.statlabel{font-size:10px}.topbarsub{display:none}.dynamicrow{align-items:stretch;flex-direction:column}.headbuttons{width:100%}.headbuttons>.btn{flex:1}.authpanel,.installpanel{padding:22px}.photos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{body{background:white;color:#111;font-size:11pt}.noprint,.sidebar,.topbar,.pagehead,.btn,.toolbar{display:none!important}.main,.workspace{width:100%;padding:0;max-width:none}.panel,.reportpaper{border:0;box-shadow:none;padding:0}.printonly{display:block}table{min-width:0}th,td{font-size:9pt;padding:7px}tr{break-inside:avoid}.photo img{height:150px}.reportpaper{max-width:none}.reportpagebreak{break-before:page}}
