*{box-sizing:border-box}body{color:#111827;background:#f4f6f8;margin:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.layout{min-height:100vh;display:flex}.sidebar{color:#fff;background:#0f172a;width:250px;padding:20px;position:fixed;inset:0 auto 0 0}.sidebar h1{margin:0 0 24px;font-size:22px}.nav{gap:8px;display:grid}.nav a{color:#dbeafe;border-radius:10px;padding:11px 12px}.nav a:hover{background:#1e293b}.main{width:calc(100% - 250px);margin-left:250px;padding:26px}.header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.header h2{margin:0;font-size:26px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:18px;box-shadow:0 8px 24px #0f172a0f}.grid{gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-title{color:#64748b;margin-bottom:8px;font-size:14px}.stat-value{font-size:28px;font-weight:700}.form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.form-row-full{grid-column:1/-1}label{gap:6px;font-size:14px;font-weight:600;display:grid}input,select,textarea{background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:100%;padding:10px 12px;font-size:15px}textarea{min-height:80px}button{color:#fff;cursor:pointer;background:#2563eb;border:0;border-radius:10px;padding:11px 16px;font-weight:700}button:hover{background:#1d4ed8}button.secondary{background:#334155}.table-wrap{margin-top:16px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #e5e7eb;padding:10px}th{color:#475569;background:#f8fafc}.badge-in{color:#047857;font-weight:700}.badge-out{color:#b91c1c;font-weight:700}.notice{border-radius:10px;margin-bottom:14px;padding:12px}.notice.success{color:#166534;background:#dcfce7}.notice.error{color:#991b1b;background:#fee2e2}@media (max-width:900px){.sidebar{width:100%;position:static}.layout{display:block}.main{width:100%;margin-left:0}.grid-3,.grid-2,.form{grid-template-columns:1fr}}
