:root{font-family:DM Sans,Noto Sans JP,sans-serif;color:#18243b;background:#f4f6fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:#2261d8}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:-.04em}h2{font-size:18px;letter-spacing:-.02em}h3{font-size:14px}.app-shell{display:flex;min-height:100vh}.sidebar{width:236px;background:#111c35;color:#dbe5fb;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;flex:none;padding:28px 17px}.brand{display:flex;align-items:center;gap:11px;font-size:17px;font-weight:700;letter-spacing:-.02em;padding:3px 8px 25px;color:#fff}.brand small{display:block;font-size:10px;letter-spacing:.18em;font-weight:600;opacity:.58;margin-top:2px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#4074f4;box-shadow:0 8px 22px #305fe26b;color:#fff;font-weight:700;font-size:23px}.sidebar nav{display:grid;gap:5px}.sidebar nav button,.sidebar-foot button{border:0;background:transparent;color:#bbc9e5;text-align:left;padding:11px 14px;border-radius:9px;font-size:13px;font-weight:600}.sidebar nav button:hover,.sidebar nav button.active{background:#253759;color:#fff}.sidebar nav button.active{box-shadow:inset 3px 0 #79a5ff}.sidebar-foot{margin-top:auto;border-top:1px solid #334363;padding:19px 8px 0;font-size:11px;overflow-wrap:anywhere}.sidebar-foot span{display:block;color:#9fb0d0;margin-top:5px}.sidebar-foot button{margin-top:13px;padding-left:0}.main{width:100%;max-width:1500px;margin:auto;padding:31px 42px 64px}.main header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.main header h1{margin-bottom:0}.eyebrow{color:#6681bb;letter-spacing:.19em;font-size:10px;font-weight:700;margin-bottom:9px}.month-pick{display:flex;align-items:center;gap:9px;font-size:12px;color:#6f7e98;font-weight:600}.month-pick input{width:155px}.panel,.metric{background:#fff;border:1px solid #e5eaf4;border-radius:15px;box-shadow:0 8px 22px #1d32610a}.panel{padding:23px 25px;margin-bottom:20px}.panel h2{margin-bottom:17px}.panel p{line-height:1.8}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:21px}.metric{padding:20px 23px;min-height:104px}.metric span{display:block;color:#73829c;font-size:12px;font-weight:600}.metric strong{display:block;font-size:25px;margin-top:11px;letter-spacing:-.04em;color:#182844}.muted,.hint{color:#7c8ca7;font-size:12px}.steps{display:flex;gap:8px;flex-wrap:wrap}.steps span{background:#eef3ff;border-radius:7px;padding:11px 14px;color:#365694;font-size:12px;font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;margin-bottom:20px}.form-grid .wide{grid-column:1/-1}label{display:grid;gap:7px;color:#42536f;font-size:12px;font-weight:700}input,select,textarea{background:#fff;border:1px solid #ccd6e7;border-radius:8px;padding:11px 12px;color:#1b2b46;min-width:0;width:100%;outline:none}input:focus,select:focus,textarea:focus{border-color:#4074f4;box-shadow:0 0 0 3px #4074f420}textarea{min-height:90px;resize:vertical}.primary,.secondary{border:1px solid transparent;border-radius:8px;padding:11px 18px;font-size:12px;font-weight:700;transition:transform .15s,background .15s}.primary{background:#386cf0;color:#fff;box-shadow:0 5px 14px #366ce340}.primary:hover{background:#2657d4;transform:translateY(-1px)}.secondary{background:#f3f6fc;color:#355583;border-color:#dce5f3}.secondary:hover{background:#eaf0fa}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:19px}.toolbar input{max-width:250px}.alert{padding:12px 16px;border-radius:9px;margin-bottom:18px;font-size:12px;font-weight:600}.alert.error{background:#fff0f0;color:#b3263b;border:1px solid #ffd7db}.alert.success{background:#edf9f1;color:#208153;border:1px solid #d0eedb}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#7686a1;font-weight:700;background:#f8faff}th,td{padding:13px 12px;border-bottom:1px solid #ecf0f6;white-space:nowrap}td{color:#34455f}.empty{padding:38px 15px;text-align:center;color:#91a0b8;background:#fafbfe;border-radius:10px;font-size:12px}.list-row{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:0;border-bottom:1px solid #ecf0f6;text-align:left;padding:15px 8px;color:#273852;font-size:12px}.list-row:hover,.list-row.selected{background:#f3f7ff}.status{display:inline-block;background:#edf1fa;border-radius:20px;padding:5px 9px;font-size:10px;letter-spacing:.03em;font-weight:700}.status.approved,.status.submitted{background:#e6f7f0;color:#218156}.status.returned,.status.cancelled{background:#fff0ef;color:#bf503e}.status.submitting{background:#fff5df;color:#a77a11}.download{display:inline-block;margin-top:14px;font-weight:700;font-size:12px}.check{display:flex;align-items:center;gap:8px}.check input{width:auto}.login-screen{display:grid;grid-template-columns:minmax(350px,540px) 1fr;min-height:100vh;background:#fff}.login-card{padding:46px clamp(30px,7vw,90px);display:flex;flex-direction:column;justify-content:center}.login-card .brand{color:#152545;padding:0;margin-bottom:55px}.login-card h1{font-size:30px;margin-bottom:12px}.login-card form{display:grid;gap:17px;margin-top:26px}.login-card .primary{margin-top:6px}.text-button{border:0;background:transparent;color:#4770c6;margin-top:14px;text-align:left;font-size:12px}.login-art{background:radial-gradient(circle at 75% 20%,#3c64ba 0,#17294d 38%,#101b32 75%);position:relative;overflow:hidden}.orbit{position:absolute;border:1px solid #a1baff2d;border-radius:50%;width:700px;height:700px;left:11%;top:10%}.orbit-two{width:450px;height:450px;left:29%;top:26%;border-color:#a1baff4c}.hero-copy{position:absolute;left:14%;bottom:14%;font-size:clamp(32px,4vw,57px);font-weight:700;line-height:1.4;color:#fff;letter-spacing:-.05em}.hero-copy small{display:block;font-size:15px;letter-spacing:.04em;font-weight:400;margin-top:17px;color:#b3c7ed}.center-screen{min-height:100vh;display:flex;justify-content:center;align-items:center;gap:12px}.center-screen .panel{max-width:580px}.narrow{width:min(90vw,560px)}.secret-uri{display:block;word-break:break-all;background:#f5f7fb;padding:14px;border-radius:8px;font-size:11px;margin:15px 0}.spinner{height:22px;width:22px;border-radius:50%;border:3px solid #dbe4fa;border-top-color:#4074f4;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.sidebar{width:195px}.main{padding:25px}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.app-shell{display:block}.sidebar{width:100%;height:auto;position:static;padding:12px}.sidebar .brand{padding:3px 6px 12px}.sidebar nav{display:flex;overflow-x:auto;gap:4px}.sidebar nav button{white-space:nowrap;padding:8px 11px}.sidebar-foot{display:none}.main{padding:22px 15px}.main header{align-items:start;flex-direction:column}.panel{padding:19px 16px}.form-grid{grid-template-columns:1fr}.metrics{gap:9px}.metric{padding:15px}.metric strong{font-size:20px}.login-screen{display:block}.login-card{min-height:100vh}.login-art{display:none}}.timesheet-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,390px);gap:18px;align-items:start}.timesheet-grid-panel{min-width:0}.timesheet-grid{min-width:540px}.timesheet-grid th,.timesheet-grid td{padding:3px 5px;text-align:center;min-width:94px}.timesheet-grid th:first-child,.timesheet-grid td:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:56px}.timesheet-grid thead th{position:sticky;top:0;background:#f8faff;z-index:2;height:50px}.timesheet-grid thead th:first-child{z-index:3}.timesheet-grid th small{display:block;font-weight:400;white-space:normal}.timesheet-grid tfoot th,.timesheet-grid tfoot td{font-weight:700;background:#eef3ff}.timesheet-cell{width:100%;min-height:32px;padding:2px;border:1px solid transparent;border-radius:6px;background:#f5f8fe;color:#345887}.timesheet-cell:hover,.timesheet-cell.selected{border-color:#4074f4;background:#e8f0ff}.timesheet-cell strong,.timesheet-cell small{display:block;font-size:11px}.timesheet-cell small{font-size:9px;color:#7283a0}.timesheet-editor{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow-y:auto}.timesheet-editor .form-grid{grid-template-columns:1fr}.timesheet-entry{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #e5eaf4;padding:9px 0;font-size:12px}.timesheet-entry small{color:#7c8ca7}.timesheet-entry .toolbar{margin:0;flex-wrap:nowrap}.timesheet-entry button{padding:6px 8px}.timesheet-editor h3{margin-top:22px}@media(max-width:1050px){.timesheet-layout{grid-template-columns:1fr}.timesheet-editor{position:static;max-height:none}}@media(max-width:700px){.timesheet-grid-panel{padding:15px 10px}.timesheet-grid th,.timesheet-grid td{min-width:84px}}.section-tabs{display:flex;gap:8px;overflow-x:auto;margin:-5px 0 22px;padding-bottom:7px;border-bottom:1px solid #dfe6f2}.section-tabs button{border:0;background:transparent;padding:10px 16px;color:#667792;font-size:12px;font-weight:700;white-space:nowrap;border-bottom:3px solid transparent}.section-tabs button:hover,.section-tabs button.selected{color:#2659cf;border-bottom-color:#4074f4}.operation-details{display:block;white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f7fb;border-radius:8px;padding:13px;max-height:260px;overflow:auto}.dashboard-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:18px}.dashboard-actions{display:grid;gap:8px}.dashboard-actions button{display:flex;justify-content:space-between;align-items:center;text-align:left;border:1px solid #e4eaf5;border-radius:9px;padding:13px 15px;background:#f9fbff;color:#2c456b;font-weight:700}.dashboard-actions button:hover{border-color:#82a7fa;background:#eef4ff}.dashboard-meta{font-size:11px;color:#71839e;margin:-5px 0 18px}@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}}
