:root{--bg:#0a0a0a;--surface:#121212;--surface-2:#161616;--text:#f3f0e7;--muted:#8a8578;--border:#2b2a26;--gold:#f5c518;--gold-bright:#ffd534;--gold-dim:#b8860b;--gold-soft:rgba(245,197,24,.12);--green:#2fb344;--green-dark:#1f9e36;--red:#e84545;--red-dark:#d12f2f;--radius:14px;--shadow:0 1px 2px rgba(0,0,0,.5),0 14px 40px rgba(0,0,0,.55)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:radial-gradient(1200px 600px at 50% -10%,#1a1a1a 0,#0a0a0a 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:Sarabun,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5;min-height:100vh}a{color:inherit;text-decoration:none}.topbar{background:hsla(0,0%,4%,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar-inner{max-width:1120px;margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;gap:22px}.brand{font-weight:800;font-size:19px;color:var(--gold);letter-spacing:.4px;white-space:nowrap;text-shadow:0 0 18px rgba(245,197,24,.25)}.brand small{color:var(--muted);font-weight:500;font-size:12px;display:block}.nav{display:flex;gap:6px;flex:1 1;flex-wrap:wrap}.nav a{padding:8px 14px;border-radius:9px;color:var(--muted);font-weight:600;font-size:14px;transition:color .15s,background .15s}.nav a:hover{background:var(--gold-soft);color:var(--gold-bright)}.nav a.active{background:linear-gradient(180deg,var(--gold-bright),var(--gold-dim));color:#1a1400;text-shadow:none}.container{max-width:1120px;margin:0 auto;padding:28px 20px 64px}.page-title{font-size:23px;font-weight:800;margin:0 0 4px;color:var(--gold);text-shadow:0 0 18px rgba(245,197,24,.2)}.page-sub{color:var(--muted);margin:0 0 22px;font-size:14px}.card{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.card+.card{margin-top:18px}.card-title{font-weight:700;font-size:16px;margin:0 0 16px;color:var(--gold)}.grid{display:grid;grid-gap:18px;gap:18px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}label{display:block;font-weight:700;font-size:13.5px;margin:0 0 8px;color:var(--gold);letter-spacing:.2px}.field{margin-bottom:18px}input,select{width:100%;padding:12px 14px;border:1px solid var(--gold-dim);border-radius:10px;font-size:15px;background:#000;color:var(--text);font-family:inherit}input::placeholder{color:#6b675c}input:focus,select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-soft),0 0 14px rgba(245,197,24,.15)}select option{background:#111;color:var(--text)}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1 1;min-width:160px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px;border:none;border-radius:11px;font-size:15px;font-weight:800;font-family:inherit;cursor:pointer;transition:filter .15s,transform .05s,box-shadow .15s;background:linear-gradient(180deg,var(--gold-bright),var(--gold-dim));color:#1a1400;box-shadow:0 6px 16px rgba(245,197,24,.18)}.btn:hover{filter:brightness(1.07)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.btn-lg{padding:18px 22px;font-size:18px}.btn-block{width:100%}.btn-success{background:linear-gradient(180deg,#36c94f,var(--green-dark));color:#fff;box-shadow:0 6px 18px rgba(47,179,68,.28)}.btn-danger{background:linear-gradient(180deg,#f25a5a,var(--red-dark));color:#fff;box-shadow:0 6px 18px rgba(232,69,69,.28)}.btn-ghost{background:var(--gold-soft);color:var(--gold-bright);box-shadow:none}.btn-ghost:hover{background:rgba(245,197,24,.2)}.btn-outline{background:#000;color:var(--text);border:1px solid var(--gold-dim);box-shadow:none}.btn-outline:hover{background:var(--gold-soft);color:var(--gold-bright)}.led{width:16px;height:16px;display:inline-block;position:relative}.led,.led:after{border-radius:50%}.led:after{content:"";position:absolute;top:2px;left:3px;width:6px;height:5px;background:hsla(0,0%,100%,.85);filter:blur(.5px)}.led-green{background:radial-gradient(circle at 35% 30%,#9bff8a,#15a02e);box-shadow:0 0 10px rgba(60,220,90,.8)}.led-red{background:radial-gradient(circle at 35% 30%,#ff9a9a,#b81d1d);box-shadow:0 0 10px rgba(255,70,70,.7)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:13px 14px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--gold-dim);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px;background:#0d0d0d}tbody tr:hover{background:rgba(245,197,24,.04)}.empty{text-align:center;color:var(--muted);padding:32px}.badge{display:inline-block;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:700;background:var(--gold-soft);color:var(--gold-bright)}.badge-open{background:rgba(232,69,69,.16);color:#ff8a8a}.badge-done{background:rgba(47,179,68,.16);color:#7be08c}.stat{background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}.stat .label{color:var(--muted);font-size:13px;font-weight:600}.stat .value{font-size:28px;font-weight:800;margin-top:6px;color:var(--gold)}.stat .unit{font-size:14px;color:var(--muted);font-weight:600}.clock-box{border:1px solid var(--gold-dim);background:#000;color:var(--gold-bright);padding:14px;text-align:center;font-family:Consolas,Courier New,monospace;font-size:20px;letter-spacing:1px;box-shadow:inset 0 0 18px rgba(245,197,24,.06)}.clock-box,.msg{border-radius:10px}.msg{padding:12px 14px;font-size:14px;font-weight:600;margin-bottom:16px;border:1px solid transparent}.msg-ok{background:rgba(47,179,68,.12);color:#7be08c;border-color:rgba(47,179,68,.35)}.msg-err{background:rgba(232,69,69,.12);color:#ff9a9a;border-color:rgba(232,69,69,.35)}.spacer{height:18px}.muted{color:var(--muted)}.right{text-align:right}.pick-list{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.pick{border:2px solid var(--border);border-radius:12px;padding:15px;cursor:pointer;background:#0d0d0d;color:var(--text);text-align:left;font-weight:700;transition:border-color .12s,background .12s,box-shadow .12s}.pick:hover{border-color:var(--gold-dim)}.pick.selected{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 0 14px rgba(245,197,24,.15)}.pick .dep{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:4px}.daterange{position:relative;max-width:380px}.cal-field{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;background:#000;border:1px solid var(--gold-dim);color:var(--text);border-radius:10px;padding:12px 14px;cursor:pointer;font-family:inherit;font-size:15px}.cal-field:hover{border-color:var(--gold)}.cal-caret{color:var(--gold-dim)}.cal-pop{position:absolute;z-index:40;margin-top:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:16px;width:312px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-title{font-weight:800;color:var(--gold);font-size:15px}.cal-nav{background:var(--gold-soft);color:var(--gold-bright);border:none;border-radius:9px;width:34px;height:34px;font-size:20px;line-height:1;cursor:pointer}.cal-nav:hover{background:rgba(245,197,24,.2)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:4px;gap:4px}.cal-dow{margin-bottom:4px}.cal-dowcell{text-align:center;font-size:12px;color:var(--muted);font-weight:700;padding:4px 0}.cal-day{aspect-ratio:1/1;border:none;background:transparent;color:var(--text);border-radius:9px;cursor:pointer;font-family:inherit;font-size:14px;transition:background .1s}.cal-day:hover{background:var(--gold-soft)}.cal-day.today{outline:1px solid var(--gold-dim)}.cal-day.inrange{background:rgba(245,197,24,.16);border-radius:0}.cal-day.sel{background:linear-gradient(180deg,var(--gold-bright),var(--gold-dim));color:#1a1400;font-weight:800}.cal-presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;border-top:1px solid var(--border);padding-top:14px}.cal-chip{background:var(--gold-soft);color:var(--gold-bright);border:none;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer}.cal-chip:hover{background:rgba(245,197,24,.2)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:390px}