*,:after,:before{box-sizing:border-box}:root{--bg:#ECE9D8;--bg2:#D4D0C8;--bg3:#C0C0C0;--border:#808080;--border-light:#FFFFFF;--border-dark:#404040;--text:#000000;--text2:#444444;--text3:#808080;--accent:#0A246A;--accent-light:#3A6EA5;--titlebar:linear-gradient(180deg,#0A246A,#3A6EA5);--green:#008000;--red:#CC0000;--yellow:#808000;--blue:#0000CC;--btn-face:#ECE9D8}body{margin:0;background:#3A6EA5;color:var(--text);font-family:Tahoma,"MS Sans Serif",Arial,sans-serif;font-size:11px;min-height:100vh;cursor:default}input,textarea{cursor:text}select{cursor:default}[role=button],a,button{cursor:pointer!important}div,h1,h2,h3,h4,h5,h6,p,span,td,th{cursor:default}a{color:var(--blue);text-decoration:underline}a:hover{color:#0000FF}.mono{font-weight:700}.mono,input,select,textarea{font-family:Tahoma,Arial,sans-serif}input,select,textarea{background:#FFFFFF;border-color:#7f9db9 #ffffff #ffffff #7f9db9;border-style:solid;border-width:1px;outline:1px solid #7F9DB9;color:#000000;padding:2px 4px;font-size:11px;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #0A246A}input::placeholder{color:#808080}button{cursor:pointer!important;font-family:Tahoma,Arial,sans-serif;font-size:11px;background:var(--btn-face);color:#000000;border-color:#ffffff #404040 #404040 #ffffff;border-style:solid;border-width:1px;outline:1px solid #808080;padding:3px 12px;min-width:60px}button:hover{background:#C1D2EE;border-color:#316AC5;outline:1px solid #316AC5}button:active{border-color:#404040 #ffffff #ffffff #404040;border-style:solid;border-width:1px}button:disabled{color:#808080;cursor:default!important}.btn-primary{background:var(--btn-face);color:#000;font-weight:700;outline:2px solid #000}.btn-primary:hover{background:#C1D2EE}.btn-ghost{background:var(--btn-face)}.btn-danger{color:#CC0000}.btn-danger,.btn-success{background:var(--btn-face);font-weight:700}.btn-success{color:#006400}.btn-sm{padding:2px 8px;font-size:11px;min-width:50px}.btn-lg{padding:5px 20px;font-size:12px}.card{background:var(--bg);outline:1px solid #404040;padding:8px}.badge,.card{border-color:#ffffff #808080 #808080 #ffffff;border-style:solid;border-width:1px}.badge{display:inline-block;padding:1px 6px;font-size:11px;font-weight:700}.badge-green{background:#C8E8C8;color:#006400}.badge-red{background:#F0C0C0;color:#CC0000}.badge-yellow{background:#F0E8A0;color:#806000}.badge-blue{background:#C0D8F0;color:#00008B}.badge-purple{background:#E0D0F0;color:#400080}table{width:100%;border-collapse:collapse;font-size:11px;cursor:default}th{text-align:left;padding:3px 6px;background:linear-gradient(180deg,#EEF4FC,#DDEAF8);border:1px solid #9ebef5;color:#000;font-weight:700;cursor:pointer!important;-webkit-user-select:none;user-select:none}th:hover{background:linear-gradient(180deg,#C8D8F0,#A8C0E8)}td{padding:3px 6px;border-bottom:1px solid #d4d0c8;vertical-align:middle;cursor:default}tr:hover td{background:#316AC5;color:#FFFFFF;cursor:default}tr:last-child td{border-bottom:none}.form-group{display:flex;flex-direction:column;gap:3px}.form-group label{font-size:11px;font-weight:700;color:#000;cursor:default}.grid-2{grid-template-columns:1fr 1fr}.grid-2,.grid-3{display:grid;gap:8px}.grid-3{grid-template-columns:1fr 1fr 1fr}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media (max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.spinner{width:16px;height:16px;border:2px solid #d4d0c8;border-top-color:#316ac5;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.toast{position:fixed;bottom:48px;right:8px;padding:8px 12px;font-size:11px;font-family:Tahoma,Arial,sans-serif;z-index:9999;animation:slideUp .2s ease;max-width:280px;border-color:#ffffff #404040 #404040 #ffffff;border-style:solid;border-width:1px;outline:1px solid #808080}.toast-ok{background:#C8E8C8;color:#006400}.toast-err{background:#F0C0C0;color:#CC0000}@keyframes slideUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.empty-state{text-align:center;padding:40px 20px;color:var(--text3);cursor:default}.empty-state .icon{font-size:32px;margin-bottom:8px}.empty-state p{margin:0;font-size:11px}.sort-asc:after{content:" ▲";font-size:9px}.sort-desc:after{content:" ▼";font-size:9px}