:root{--nav:#1d293b;--blue:#1688ec;--text:#182337;--muted:#65758b;--border:#dfe7ef;--bg:#f4f7fb;--green:#18a674;--red:#d93c51}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--bg);font:16px/1.6 "Yu Gothic UI",Meiryo,Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--text);padding:8px 14px;min-height:40px}button:hover{filter:brightness(.96)}button:disabled{opacity:.6;cursor:wait}input,select,textarea{width:100%;padding:9px 11px;border:1px solid #cbd7e4;border-radius:7px;background:white;color:var(--text)}textarea{min-height:90px}label{display:grid;gap:5px;font-size:14px;font-weight:600}a{color:#096dcb}h1{font-size:25px;margin:0}h2{font-size:19px;margin:0}h3{font-size:17px;margin:0}p{margin:8px 0}small{font-size:12px;color:var(--muted)}.primary{background:var(--blue);color:white;border-color:var(--blue)}.danger{color:var(--red)}.brand{font-size:28px;font-weight:850;letter-spacing:2px;color:white}.brand span{color:#ffc333}.brand-sub{color:#bac9db}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#13233a,#264f78)}.login form{width:min(430px,calc(100% - 32px));padding:35px;background:white;border-radius:15px;display:grid;gap:15px;box-shadow:0 20px 70px #00152d66}.login .brand{color:var(--nav)}.login p{color:var(--muted)}#login-error,#form-error{color:var(--red);font-size:14px}#sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--nav);color:white;padding:22px 13px;display:flex;flex-direction:column;z-index:20;overflow:auto}#sidebar>.brand,#sidebar>.brand-sub{padding-left:13px}nav{margin-top:24px;display:grid;gap:4px}nav button{display:flex;align-items:center;gap:12px;border:0;background:none;color:#eaf2ff;text-align:left;font-size:14px;min-height:44px}nav button.active{background:var(--blue);color:white}nav button span:first-child{font-size:20px;width:22px}.sidebar-footer{margin-top:auto;padding:20px 10px 0;display:grid;gap:7px;font-size:14px}.sidebar-footer span{color:#b1c3d9;font-size:12px}.sidebar-footer button{background:#2b3d55;color:#eaf3ff;border:0;font-size:13px;padding:5px 9px}.main{margin-left:240px}header{height:70px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 28px;background:white;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.header-end{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:14px}.pill,.status{display:inline-block;border-radius:5px;padding:3px 9px;background:#e7f2fc;color:#177ace;font-size:12px;white-space:nowrap}.status.approved,.status.paid,.status.done,.status.completed{background:#e3f7ee;color:#188355}.status.rejected,.status.inactive,.status.cancelled{background:#ffeded;color:#bd3e4a}.status.submitted,.status.sent{background:#fff3dd;color:#956510}#content{max-width:1640px;padding:26px;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.page-head p{color:var(--muted);font-size:14px}.actions{display:flex;gap:8px;flex-wrap:wrap}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:20px 0}.kpi{border:1px solid var(--border);background:white;border-radius:10px;padding:18px;display:flex;gap:12px;align-items:center;text-align:left}.kpi .circle{background:#e2f2ff;color:#178ae9;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;font-size:25px;flex-shrink:0}.kpi.green .circle{background:#e1f8ed;color:var(--green)}.kpi.red .circle{background:#ffe4e9;color:var(--red)}.kpi.orange .circle{background:#fff1dd;color:#c78613}.kpi.purple .circle{background:#efe4ff;color:#8c50d8}.kpi strong{display:block;font-size:27px;line-height:1.3}.kpi small{font-size:13px}.panel{background:#fff;border:1px solid var(--border);border-radius:10px;margin-bottom:18px;overflow:hidden}.panel-title{padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}.panel-title h2{color:#22364d}.panel-title h2:first-letter{color:var(--blue)}.grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}.body{padding:18px}.alert{display:flex;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border);font-size:14px}.alert strong{display:block}.alert .warning{color:var(--red);font-size:22px}.row{padding:12px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:14px}.muted{color:var(--muted)}.empty{padding:32px 20px;text-align:center;color:var(--muted)}.filters{display:flex;gap:10px;align-items:center;margin:16px 0}.filters input{max-width:380px}.filters select{max-width:190px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:13px 15px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{background:#f7f9fc;color:var(--muted);font-weight:600;white-space:nowrap}td:first-child{font-weight:600}td button{font-size:12px;padding:4px 8px;min-height:32px;margin:2px}td a{font-size:13px}.table-meta{padding:10px 16px;font-size:13px;color:var(--muted)}.calendar-tools{display:flex;gap:8px;padding:13px 16px;align-items:center;flex-wrap:wrap}.calendar-tools strong{margin-right:auto}.calendar-tools button.active{background:#dff0ff;color:#117ad6}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal.day{grid-template-columns:1fr}.cal-label{background:#f7f9fc;text-align:center;border-top:1px solid var(--border);border-right:1px solid var(--border);padding:7px;font-size:14px}.cal-cell{min-height:130px;padding:8px;border-top:1px solid var(--border);border-right:1px solid var(--border);font-size:14px;min-width:0}.cal-cell.today{background:#f0f8ff}.cal-cell.dim{color:#9aa8b9}.event{display:block;width:100%;text-align:left;font-size:12px;padding:5px 7px;background:#e7f7ee;border:0;border-left:3px solid #27b781;border-radius:4px;margin-top:5px;min-height:30px;overflow-wrap:anywhere}.event.task{background:#f0eaff;border-color:#8659ce}.event.leave{background:#fff1dd;border-color:#eda740}.event.assignment{background:#e6f2ff;border-color:#2787d5}progress{width:90px;height:9px;accent-color:var(--blue)}.big-value{font-size:24px;font-weight:750}.stats-line{display:flex;justify-content:space-between;padding:9px 0}.menu-toggle{display:none}dialog{border:0;padding:0;border-radius:12px;width:min(790px,calc(100% - 24px));max-height:92vh;color:var(--text);box-shadow:0 25px 100px #0e1b4455}dialog::backdrop{background:#14213988}#edit-form{padding:22px}.dialog-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.dialog-title button{font-size:24px;border:0}.fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.full{grid-column:1/-1}dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#163951;color:white;padding:12px 22px;border-radius:9px;z-index:100;max-width:90vw}.invoice-line{display:grid;grid-template-columns:2fr .7fr 1fr 1fr auto;gap:7px;align-items:center;margin:8px 0}.invoice-line input,.invoice-line select{font-size:14px}.hint{padding:12px 16px;background:#eaf4fc;border-radius:8px;font-size:14px;color:#305c85}.account{display:flex;gap:10px;flex-wrap:wrap}#print-area{display:none}.badge{font-size:12px;background:#fff0da;color:#986210;padding:4px 8px;border-radius:5px}.list-counter{font-size:13px;color:var(--muted)}
.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.admin-kpis>div{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 18px}.admin-kpis small{display:block;font-size:13px}.admin-kpis b{display:block;font-size:24px;margin-top:3px}.company-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.company-card{background:#fff;border:1px solid var(--border);border-top:4px solid var(--blue);border-radius:11px;padding:19px;min-width:0}.company-card.suspended{border-top-color:#9aa8b9;background:#fbfcfd}.company-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.company-card h2{margin-top:8px;overflow-wrap:anywhere}.company-card-head p{font-size:14px;color:var(--muted);overflow-wrap:anywhere}.plan{background:#eaf4fc;color:#126eaf;border-radius:8px;padding:7px 11px;text-align:right;font-size:13px;font-weight:700;white-space:nowrap}.plan small{display:block;font-size:11px}.company-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:18px 0}.company-card dl div{min-width:0}.company-card dt{font-size:12px;color:var(--muted)}.company-card dd{margin:2px 0;font-size:14px;overflow-wrap:anywhere}.overdue{color:var(--red);font-weight:700}.company-note{font-size:13px;background:#f6f8fb;border-radius:7px;padding:9px 11px;white-space:pre-wrap}.company-actions{display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:14px}.empty-state{grid-column:1/-1;padding:42px 20px;text-align:center}.empty-state p{color:var(--muted)}
.protection-state{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-radius:10px;margin-bottom:16px}.protection-state.good{background:#e6f7ef;border:1px solid #bce8d3;color:#116c49}.protection-state.bad{background:#fff0f1;border:1px solid #f2c4ca;color:#a42537}.protection-state span{font-size:14px}.row-actions{white-space:nowrap}.row-actions small{display:block;white-space:normal}
@media(max-width:1250px){.kpis{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:1fr}.three{grid-template-columns:1fr 1fr}.header-end #today{display:none}.company-list{grid-template-columns:1fr}}@media(max-width:760px){#sidebar{transform:translateX(-100%);transition:transform .2s;box-shadow:0 0 0 100vmax transparent}#sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #13203488}.main{margin-left:0}header{padding:0 14px;height:60px}.menu-toggle{display:block}#content{padding:16px}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions,.page-head .actions button{width:100%}h1{font-size:22px}.kpis{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:12px;gap:8px}.kpi .circle{width:35px;height:35px;font-size:20px}.kpi strong{font-size:22px}.three{grid-template-columns:1fr}.fields-grid{grid-template-columns:1fr}.full{grid-column:auto}.invoice-line{grid-template-columns:1fr 1fr}.invoice-line>input:first-child{grid-column:1/-1}.cal:not(.day){min-width:650px}.calendar-scroll{overflow:auto}.filters{flex-wrap:wrap}.filters input{max-width:none}th,td{padding:10px}.header-end{font-size:12px}dialog{max-height:95vh}#edit-form{padding:16px}.admin-kpis{grid-template-columns:1fr 1fr;gap:9px}.admin-kpis>div{padding:12px}.admin-kpis b{font-size:20px}.company-card{padding:15px}.company-card-head{display:block}.plan{display:inline-block;text-align:left;margin-top:8px}.company-card dl{grid-template-columns:1fr}.company-actions button{flex:1;min-width:120px}}
@media print{body>*:not(#print-area){display:none!important}#print-area{display:block;padding:12mm;font-size:12pt;color:#111}#print-area h1{text-align:center;margin:10mm 0}#print-area .invoice-meta{display:flex;justify-content:space-between;gap:20mm}#print-area table{margin:10mm 0}#print-area th,#print-area td{border:1px solid #ccc}#print-area p{white-space:pre-line}#print-area .total{text-align:right;font-size:18pt;font-weight:bold} @page{size:A4;margin:12mm}}
[hidden]{display:none!important}
#mobile-nav{display:none}
@media(max-width:760px){body{font-size:16px;padding-bottom:calc(72px + env(safe-area-inset-bottom))}button{min-height:48px;padding:10px 14px;touch-action:manipulation}input,select,textarea{font-size:16px;min-height:48px;padding:11px 12px}#sidebar{width:min(86vw,320px);padding-bottom:calc(20px + env(safe-area-inset-bottom))}#sidebar.open{box-shadow:0 0 0 100vmax #13203499}header{padding:0 12px;height:58px}.menu-toggle{width:48px;padding:0;font-size:22px}#breadcrumb{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-end{gap:7px}.header-end #role{font-size:11px;padding:3px 6px}#content{padding:14px 12px}.page-head{margin-bottom:14px}.page-head p{margin:4px 0}.page-head .actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.page-head .actions>*{width:100%}.page-head .actions a button,.page-head .actions button{width:100%}h1{font-size:21px}.kpis{gap:8px;margin:14px 0}.kpi{padding:11px 9px;gap:7px;min-height:76px}.kpi .circle{width:34px;height:34px;font-size:19px}.kpi strong{font-size:21px}.kpi small{font-size:12px}.fields-grid{gap:13px}.invoice-line{padding:10px;background:#f6f8fb;border-radius:9px}.cal-cell{min-height:100px}.calendar-tools{padding:10px;gap:6px}.filters{display:grid;grid-template-columns:1fr;gap:8px;margin:12px 0}.filters input,.filters select{max-width:none}.mobile-cards{overflow:visible;background:transparent;border:0}.mobile-cards table,.mobile-cards tbody,.mobile-cards tr,.mobile-cards td{display:block;width:100%}.mobile-cards thead{display:none}.mobile-cards tr{background:#fff;border:1px solid var(--border);border-radius:11px;margin-bottom:10px;padding:6px 12px;box-shadow:0 2px 8px #15304d0a}.mobile-cards td{display:grid;grid-template-columns:minmax(92px,35%) 1fr;gap:10px;padding:9px 0;border-bottom:1px solid #edf1f5;font-size:14px;overflow-wrap:anywhere}.mobile-cards td::before{content:attr(data-label);color:var(--muted);font-size:13px;font-weight:500}.mobile-cards td:first-child{font-size:16px}.mobile-cards td:last-child{border-bottom:0}.mobile-cards .row-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px}.mobile-cards .row-actions::before{width:100%}.mobile-cards .row-actions button{flex:1;min-width:86px;margin:0}dialog{width:100%;max-width:none;max-height:92dvh;margin:auto 0 0;border-radius:18px 18px 0 0}#edit-form{padding:0 16px 16px;overflow:auto;max-height:92dvh}.dialog-title{position:sticky;top:0;background:#fff;z-index:2;padding:14px 0 10px;margin:0 0 12px;border-bottom:1px solid var(--border)}dialog footer{position:sticky;bottom:0;background:#fff;padding:12px 0 calc(8px + env(safe-area-inset-bottom));margin-top:14px;border-top:1px solid var(--border)}dialog footer button{flex:1}input[type=file]{padding:8px;height:auto}input[type=file]::file-selector-button{border:0;border-radius:7px;background:#e5f2ff;color:#096dcb;padding:10px;margin-right:8px;font-weight:700}#mobile-nav{position:fixed;z-index:18;left:0;right:0;bottom:0;height:calc(64px + env(safe-area-inset-bottom));padding:5px 5px env(safe-area-inset-bottom);background:#fff;border-top:1px solid var(--border);display:flex;justify-content:space-around;box-shadow:0 -6px 24px #102a4614}#mobile-nav button{border:0;background:transparent;border-radius:9px;min-height:54px;min-width:55px;padding:3px 7px;display:grid;place-items:center;color:var(--muted);line-height:1.1}#mobile-nav button span{font-size:21px}#mobile-nav button small{font-size:11px;color:inherit}#mobile-nav button.active{color:var(--blue);background:#eaf4fc}#toast{bottom:calc(78px + env(safe-area-inset-bottom));width:calc(100% - 24px);text-align:center}}
