:root{--navy:#082653;--blue:#1268ee;--ink:#14213a;--muted:#718097;--line:#dce5f0;--bg:#f4f7fb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{display:flex;min-height:100vh}aside{position:fixed;inset:0 auto 0 0;width:230px;padding:24px 16px;color:#fff;background:linear-gradient(180deg,#082b61,#061f46);display:flex;flex-direction:column;z-index:30}.brand{height:50px;display:flex;align-items:center;gap:10px;padding:0 9px;font-weight:800;font-size:18px}.brand b{display:grid;place-items:center;width:34px;height:34px;color:var(--blue);background:#fff;border-radius:10px}.brand button{display:none;margin-left:auto;color:#fff;background:none;border:0;font-size:25px}nav{display:grid;gap:8px;margin-top:35px}nav button,nav a{height:47px;padding:0 14px;border:0;border-radius:9px;color:#ccdaee;background:transparent;text-align:left;text-decoration:none;font-weight:700;display:flex;align-items:center}nav button:hover,nav a:hover,nav .active{color:#fff;background:linear-gradient(90deg,#1268ee,#1759b4)}.tip{margin-top:auto;padding:16px;border:1px solid #ffffff20;border-radius:11px;background:#ffffff10;display:grid;gap:7px}.tip span{font-size:12px;line-height:1.5;color:#bdcce1}.logout{margin-top:15px;color:#b9c9e0;text-decoration:none;font-size:12px;padding:8px}.shell main{width:calc(100% - 230px);margin-left:230px;padding:28px 32px 48px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}header small,.panel small{color:var(--muted);font-size:10px;font-weight:800}h1{margin:4px 0 0;font-size:30px}h2{margin:5px 0 0;font-size:20px}.primary{min-height:44px;padding:0 18px;border:0;border-radius:9px;color:#fff;background:var(--blue);font-weight:750;box-shadow:0 6px 14px #1268ee30}.primary:hover{background:#075cdb}.wide{width:100%}#openNav{display:none;border:0;background:none;font-size:23px}.search{height:65px;padding:0 18px;border:1px solid #ccd9e8;border-radius:11px;background:#fff;display:flex;align-items:center;gap:13px}.search>span{font-size:27px;color:#526983}.search input{height:100%;flex:1;border:0;outline:0;font-size:15px}.search b{padding:8px 10px;color:#6c7c90;background:#f1f5fa;border-radius:7px;font-size:11px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin:19px 0}.stats article{min-height:126px;padding:21px;border:1px solid var(--line);border-radius:11px;background:#fff;display:flex;align-items:center;gap:16px}.stats i{width:55px;height:55px;display:grid;place-items:center;border-radius:50%;font-size:25px;font-style:normal}.stats .blue i{color:#1268ee;background:#e8f1ff}.stats .orange i{color:#e88d00;background:#fff3dc}.stats .red i{color:#dd3540;background:#ffebed}.stats strong{display:block;font-size:32px;line-height:1;color:#1268ee}.stats .orange strong{color:#e88d00}.stats .red strong{color:#dd3540}.stats b{display:block;margin:8px 0 4px}.stats span{color:#7d899b;font-size:12px}.panel{border:1px solid var(--line);border-radius:11px;background:#fff}.categories{padding:19px;margin-bottom:19px}.categories>div{display:flex;gap:9px;overflow:auto;margin-top:15px}.categories button{flex:0 0 auto;height:38px;padding:0 12px;border:1px solid #d6e1ed;border-radius:8px;background:#fff;color:#34425a;font-weight:700}.categories button span{margin-left:7px;padding:2px 6px;border-radius:5px;background:#eef3f8;color:#6c7c90;font-size:10px}.categories button.active{color:#fff;border-color:var(--blue);background:var(--blue)}.categories button.active span{color:#0755bd;background:#fff}.table-panel{overflow:hidden}.panel-head{min-height:76px;padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-head>span{font-size:11px;color:#7d8999}.table-wrap{overflow:auto}table{width:100%;min-width:980px;border-collapse:collapse}th{padding:13px 14px;color:#59677a;background:#f7f9fc;font-size:12px;text-align:left;text-transform:uppercase}td{padding:13px 14px;border-top:1px solid #edf1f6;font-size:13px;vertical-align:middle}tbody tr:hover{background:#f9fbfe}td b{display:block}td small{display:block;margin-top:5px;color:#8190a3}.code{color:#0d5eca;font-weight:800}.badge,.status{display:inline-block;padding:6px 8px;border-radius:6px;font-size:11px;font-weight:750}.badge{color:#3e5877;background:#eef4fb}.status.ok{color:#148356;background:#e8f7ef}.status.low{color:#b86f00;background:#fff4de}.status.out{color:#c62d38;background:#ffeaec}.loc{white-space:nowrap}.actions{display:flex;gap:5px}.actions button{width:31px;height:31px;border:1px solid #dce4ee;border-radius:6px;color:#53647b;background:#fff}.actions button:hover{color:var(--blue);background:#f2f7ff}.actions .danger:hover{color:#d8323d;background:#fff3f4}.empty{text-align:center;height:220px;color:#7d8999}.backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:18px;background:#05122799;backdrop-filter:blur(3px)}.backdrop[hidden]{display:none}.modal{position:relative;width:min(650px,100%);max-height:94vh;overflow:auto;padding:25px;border-radius:14px;background:#fff;box-shadow:0 24px 65px #001c453f}.modal-x{position:absolute;right:16px;top:15px;width:35px;height:35px;border:0;border-radius:8px;background:#eef3f8;color:#64748a;font-size:22px}.modal-head{margin-bottom:19px}.modal-head small{color:#718097;font-weight:800;letter-spacing:.12em}.modal-head h2{font-size:23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid label,.stock-form label,.login-card label{display:grid;gap:7px;color:#3c4b60;font-size:12px;font-weight:750}.form-grid .full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #ced9e6;border-radius:8px;outline:0;color:#17253a;background:#fff}.form-grid input,.form-grid select,.login-card input{height:43px;padding:0 11px}.form-grid textarea{min-height:75px;padding:11px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#5898ef;box-shadow:0 0 0 3px #1268ee16}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:9px;margin-top:7px}.secondary{min-height:44px;padding:0 17px;border:1px solid #d6e0eb;border-radius:8px;color:#536175;background:#fff;font-weight:700}.stock-info{padding:15px;margin-bottom:16px;border-radius:9px;background:#f3f6fa;display:grid;gap:5px}.stock-info span{color:#68778c;font-size:12px}.stock-form input{height:48px;padding:0 12px;font-size:18px;font-weight:800}.balance{display:flex;justify-content:space-between;margin:16px 0;color:#68778c}.balance b{font-size:21px;color:var(--blue)}#toast{position:fixed;z-index:90;right:22px;bottom:22px;max-width:350px;padding:13px 17px;border-radius:9px;color:#fff;background:#15335e;font-size:13px;font-weight:700;box-shadow:0 12px 30px #001e463d;transform:translateY(80px);opacity:0;transition:.2s}#toast.show{transform:none;opacity:1}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#eef5ff,#f8fafc)}.login-card{width:min(410px,100%);padding:30px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 20px 60px #173a6518;display:grid;gap:15px}.login-card .logo{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--blue);font-size:22px}.login-card h1{margin:0}.login-card p{margin:-8px 0 5px;color:#718097}.alert{padding:11px;border-radius:8px;color:#b4232e;background:#ffeaec;font-size:13px}@media(max-width:900px){aside{transform:translateX(-100%);transition:.2s}aside.open{transform:none;box-shadow:20px 0 50px #0004}.brand button,#openNav{display:block}.shell main{width:100%;margin:0;padding:21px 17px 40px}header{justify-content:flex-start;gap:13px}header .primary{margin-left:auto}.stats{grid-template-columns:1fr}.stats article{min-height:100px}}@media(max-width:560px){.shell main{padding:17px 11px 35px}header small{display:none}h1{font-size:22px}header .primary{width:44px;padding:0;font-size:0}header .primary:first-letter{font-size:20px}.search{height:57px;padding:0 13px}.search b{display:none}.stats{gap:9px}.stats article{padding:15px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.form-actions{grid-column:auto}.panel-head>span{display:none}}
