:root{--green:#146957;--ink:#223e36;--muted:#718079;--border:#e1e8e4;--bg:#f5f7f6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,'Yu Gothic',Meiryo,sans-serif;font-size:14px;line-height:1.7}a{color:var(--green);text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{border:0;border-radius:8px;padding:12px 20px;background:var(--green);color:white;cursor:pointer;font-weight:700}button:hover{filter:brightness(.94)}button:disabled{opacity:.5;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #dfaa41;outline-offset:3px}.shell{display:flex;min-height:100vh}.sidebar{width:244px;background:white;border-right:1px solid var(--border);padding:35px 22px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;font-size:23px;font-weight:bold;letter-spacing:1px}.brand small{font-size:10px;display:block;letter-spacing:3px;color:var(--muted)}.brand-icon{font-size:30px;display:grid;place-items:center;background:var(--green);color:white;width:42px;height:46px;border-radius:12px}.nav-label{font-size:11px;color:var(--muted);margin:52px 12px 14px}nav{display:grid;gap:8px}nav a{padding:12px;border-radius:8px;color:#62716b;display:flex;gap:13px;font-weight:600}nav a.active{background:#e9f3ee;color:var(--green)}nav a span{font-size:19px;line-height:24px}.sidebar-bottom{margin-top:auto;display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:24px}.sidebar-bottom small,.employee small{display:block;font-size:10px;color:var(--muted)}.avatar{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#e5eee8;color:var(--green);flex-shrink:0}.workspace{margin-left:244px;width:calc(100% - 244px)}.topbar{height:75px;background:white;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 44px;font-size:12px}.topbar>span{color:var(--muted)}.main{max-width:1240px;margin:auto;padding:28px 44px}.demo-banner{background:#f6efda;border:1px solid #ece0bc;border-radius:7px;padding:9px 13px;color:#806534;font-size:11px;display:flex;gap:10px;align-items:center}.demo-banner>span{font-size:9px;border:1px solid #b19868;border-radius:4px;padding:0 5px;font-weight:bold}.page-heading{display:flex;justify-content:space-between;align-items:center;margin:30px 0 25px}.eyebrow{color:var(--green);font-size:10px;letter-spacing:1.7px;font-weight:bold;margin:0 0 8px}h1{font-size:28px;letter-spacing:1px;line-height:1.4;margin:0 0 10px}h2{font-size:17px;margin:0 0 10px}h3{font-size:13px}.muted{color:var(--muted);font-size:12px;margin:0 0 20px}.card{background:white;border:1px solid var(--border);border-radius:13px;padding:28px;box-shadow:0 3px 12px #1e4c3803}.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:start}form{display:grid;gap:21px}label{display:grid;gap:8px;font-size:12px;font-weight:600}input,select,textarea{width:100%;border:1px solid #d9e2dc;border-radius:7px;padding:11px 13px;background:white;color:var(--ink);min-height:46px;font-size:16px}input::placeholder,textarea::placeholder{color:#a1ada6}textarea{resize:vertical}label small{color:var(--muted);font-size:10px;font-weight:400}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-size:12px;font-weight:600;margin-bottom:8px}.radio-group{display:flex;gap:10px}.radio-group label{display:flex;align-items:center;border:1px solid var(--border);border-radius:7px;padding:10px 13px;flex:1;min-height:46px}.radio-group input{width:15px;min-height:0;accent-color:var(--green);margin:0}.amount-input{font-size:24px;font-weight:bold}.optional{color:var(--muted);font-size:10px;display:inline;font-weight:400}label:has(.optional){display:block}label:has(.optional) textarea{display:block;margin-top:8px}.form-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:24px;gap:12px}.form-footer .muted{margin:0;font-size:10px}.summary{background:#eef5f0;border-color:#dce9df}.summary strong{font-size:34px;display:block;margin-top:18px;font-weight:600}.summary p{color:var(--muted);font-size:12px;margin:4px 0 25px}.summary a{font-size:12px;font-weight:700}.tips{padding:16px 8px;color:var(--muted);font-size:12px}.tips h3{color:var(--ink)}footer{display:flex;justify-content:space-between;color:#8f9c94;font-size:10px;margin:36px 0 5px}.success,.error,.info{padding:14px 16px;border-radius:8px;margin-bottom:20px;font-size:13px;overflow-wrap:anywhere}.success{background:#e5f3e9;color:#185b37}.error{background:#ffeded;color:#9c2929}.info{background:#eef3f7;color:#526574}.filters{display:flex;gap:14px;align-items:end;flex-wrap:wrap;margin-bottom:24px}.filters label{flex:1;min-width:140px}.secondary{background:white;color:var(--ink);border:1px solid var(--border)}.list-heading,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;margin-bottom:12px}.expense-row{background:white;color:var(--ink);border-radius:0;width:100%;padding:20px 0;display:flex;gap:20px;align-items:center;text-align:left;border-top:1px solid var(--border);font-weight:400}.expense-row:hover{background:#f7faf8;filter:none}.expense-row small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.expense-row .date{font-size:12px;min-width:90px}.route{flex:1;font-weight:600;overflow-wrap:anywhere}.arrow{color:#9db1a4;padding:0 6px}.expense-amount{font-weight:bold;text-align:right;white-space:nowrap}.valid{color:#357b56!important;font-size:11px}.cancelled{color:#aa6254!important;font-size:11px}.empty{text-align:center;color:var(--muted);padding:45px 10px}.auth-card{max-width:470px;margin:0 auto}.auth-card>label{margin-bottom:20px}.auth-symbol{background:#e9f3ee;color:var(--green);border-radius:12px;width:50px;height:50px;display:grid;place-items:center;font-size:28px;margin-bottom:20px}.full{width:100%}.auth-card>p:last-child{margin:18px 0 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.stats .card>span{font-size:12px;color:var(--muted)}.stats strong{display:block;font-size:30px;margin-top:12px}.stats small{font-size:11px;color:var(--muted);font-weight:400}.employee{display:flex;gap:12px;padding:22px 0;border-top:1px solid var(--border);align-items:center}.employee-name{flex:1;overflow-wrap:anywhere}.employee-actions{display:flex;gap:6px;flex-wrap:wrap;max-width:190px}.employee-actions button{padding:7px 10px;font-size:11px}.text-button{background:transparent;color:var(--green);padding:6px 0;font-size:12px}.session-card{margin-top:24px}.session-card button{font-size:12px}.modal-backdrop{position:fixed;inset:0;background:#122a2470;display:grid;place-items:center;padding:20px;z-index:10;overflow:auto}.modal{position:relative;width:100%;max-width:520px;max-height:90vh;overflow:auto}.close{position:absolute;right:16px;top:12px;background:transparent;color:var(--muted);font-size:24px;padding:0 8px}dl{margin:20px 0}dl>div{display:grid;grid-template-columns:100px 1fr;gap:16px;padding:9px 0;border-bottom:1px solid var(--border)}dt{color:var(--muted);font-size:12px}dd{margin:0;overflow-wrap:anywhere}.danger{background:#a54538;margin-bottom:20px}.employee-layout{grid-template-columns:minmax(0,1fr) 290px}
@media(min-width:1450px){.main{padding-top:36px}}@media(max-width:1100px){.sidebar{width:210px;padding:28px 16px}.workspace{margin-left:210px;width:calc(100% - 210px)}.main{padding:25px}.topbar{padding:0 25px}.form-layout{grid-template-columns:minmax(0,1fr) 210px;gap:18px}.card{padding:22px}.employee-layout{grid-template-columns:1fr}.form-footer{flex-direction:column;align-items:stretch}.employee-actions{max-width:220px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:static;width:auto;padding:16px 20px;border-right:0;border-bottom:1px solid var(--border)}.brand{font-size:20px}.brand-icon{height:36px;width:34px;font-size:26px}.brand small{font-size:9px}.nav-label,.sidebar-bottom{display:none}nav{display:flex;gap:5px;overflow-x:auto;margin-top:18px}nav a{white-space:nowrap;padding:8px 10px;font-size:12px;gap:6px}nav a span{font-size:16px}.workspace{margin:0;width:auto}.topbar{height:45px;padding:0 20px;font-size:10px}.main{padding:20px 16px}.demo-banner{align-items:start;font-size:10px}.page-heading{margin:24px 0 20px;gap:12px}h1{font-size:24px}h2{font-size:16px}.eyebrow{font-size:9px}.page-heading .muted{font-size:11px;margin-bottom:0}.page-heading>button{white-space:nowrap;padding:10px;font-size:11px}.form-layout{display:flex;flex-direction:column}.form-layout>section,.form-layout>aside{width:100%}.form-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{padding:21px 18px}.two-columns{gap:14px}.summary strong{font-size:27px}.summary p{margin-bottom:12px}.tips{padding:0;font-size:11px}.form-footer button{width:100%}.stats{gap:10px;grid-template-columns:1fr}.stats .card{display:flex;align-items:center;justify-content:space-between;gap:10px}.stats strong{font-size:25px;margin:0}.stats>.card>small{display:none}.expense-row{gap:10px;flex-wrap:wrap;padding:16px 0}.expense-row .date{width:100%;display:flex;gap:12px;align-items:center;font-size:10px}.expense-row .date small{margin:0}.expense-row .route{font-size:13px}.expense-amount{font-size:14px}.filters{gap:10px}.filters label{min-width:125px}.filters button{font-size:11px;padding:10px}.list-heading{align-items:start;font-size:11px}.employee{flex-wrap:wrap}.employee-actions{max-width:none;width:100%;padding-left:48px}.employee-layout>section{width:100%}.session-card{font-size:12px}footer{font-size:9px;gap:12px}.auth-card{padding:24px}.modal{padding:24px}.modal-backdrop{padding:14px}}

.expense-fields{display:grid;gap:21px}.receipt-toggle{display:flex;gap:12px}.receipt-toggle button{min-height:48px;min-width:105px;background:white;color:var(--ink);border:1px solid var(--border)}.receipt-toggle button[aria-pressed=true]{background:#e5f3e9;border:2px solid var(--green);color:var(--green)}.check-label{display:flex;align-items:center;gap:8px;min-height:46px}.check-label input{width:18px;min-height:18px;accent-color:var(--green)}.auth-card select{margin-bottom:20px}.expense-row .route small{white-space:pre-wrap}.modal dd{white-space:pre-wrap}.error a{text-decoration:underline}.modal .error{margin-top:12px}

.security-sections{display:grid;gap:24px;margin-top:24px}.inline-form{display:flex;align-items:end;gap:16px;flex-wrap:wrap}.inline-form label{flex:1;min-width:180px}.table-scroll{overflow:auto;margin-top:20px}.table-scroll table{border-collapse:collapse;width:100%;text-align:left;font-size:12px}.table-scroll th,.table-scroll td{padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:top;min-width:110px}.table-scroll small{display:block;color:var(--muted);font-size:10px}.table-scroll button{padding:8px 12px;font-size:11px;white-space:nowrap}.device-text{max-width:220px;overflow-wrap:anywhere}.all-revoke{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.all-revoke button{font-size:11px}.code-dialog{max-width:560px;width:calc(100% - 32px);max-height:90vh;overflow:auto;color:var(--ink);position:fixed}.code-dialog::backdrop{background:#122a2470}.code-dialog input{font-family:monospace;font-size:16px}.dialog-actions{display:flex;gap:12px;flex-wrap:wrap}.topbar{gap:12px}.topbar>span{margin-right:auto}.auth-card form{margin-top:20px}@media(max-width:760px){.security-sections .inline-form{display:grid;grid-template-columns:1fr}.security-sections .inline-form label{min-width:0}.table-scroll{max-width:100%}.topbar{height:auto;min-height:45px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}.topbar .text-button{font-size:11px}.all-revoke{display:grid}.code-dialog .dialog-actions>*{flex:1}.table-scroll th,.table-scroll td{min-width:100px}}

.security-sections{min-width:0;grid-template-columns:minmax(0,1fr)}.security-sections>.card{min-width:0}.table-scroll{width:100%;min-width:0}.security-sections th,.security-sections td{overflow-wrap:anywhere}.security-sections .inline-form{min-width:0}.security-sections .inline-form>*{max-width:100%}

[hidden]{display:none!important}body{margin:0}.code-dialog{border:1px solid var(--border)}.device-text{display:block;max-width:220px}table{table-layout:auto}.security-sections{min-width:0}.security-sections table small{display:block}.auth-card form{margin-top:20px}

/* Keep native date controls within their columns, including Safari's intrinsic width. */
input,select,textarea{min-width:0;max-width:100%}
form,label,.two-columns>*{min-width:0}
.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
input[type=date]{-webkit-appearance:none;appearance:none;box-sizing:border-box;display:block;width:0;min-width:100%;max-width:100%;text-align:left}
input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left}
.brand-icon{display:block;object-fit:contain;flex-shrink:0}
.auth-symbol img{display:block;object-fit:contain}
@media(max-width:760px){.filters label{flex:1 1 140px;min-width:0}}
@media(max-width:760px){.filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.filters>button{justify-self:start}.filters label{width:100%}}
