:root{font-family:'Avenir Next','PingFang SC','Microsoft YaHei',sans-serif;color:#284637;background:#f3f6f1;font-synthesis:none;--spring:cubic-bezier(.32,.72,0,1);--muted:#738578;--green:#315b43;--shell:rgba(58,88,66,.045)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}[hidden]{display:none!important}h1,h2,h3,p{margin:0}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #769a73;outline-offset:3px}.enter{animation:enter .65s var(--spring) both}@keyframes enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.login-layout{max-width:1300px;min-height:100dvh;margin:auto;padding:72px 64px;display:grid;grid-template-columns:1.13fr 1fr;gap:80px;align-items:center}.brand{display:flex;gap:12px;align-items:center;font-weight:650;font-size:17px;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#315b43;color:#f2f7ef;font-size:23px;font-weight:400;box-shadow:inset 0 1px rgba(255,255,255,.25)}.brand-sub{display:block;font-size:10px;font-weight:450;letter-spacing:.13em;color:var(--muted);margin-top:3px}.eyebrow{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.15em;color:#728571;background:#e9efe4;padding:6px 11px;border-radius:30px}.login-story>.eyebrow{margin-top:78px}.login-story h1{font-size:clamp(36px,4vw,52px);line-height:1.35;font-weight:550;letter-spacing:-.05em;margin:24px 0}.intro{font-size:15px;color:#738071;line-height:1.9;max-width:380px}.story-shell{padding:5px;border-radius:20px;background:var(--shell);margin-top:40px;max-width:395px}.story-card{display:flex;gap:12px;padding:18px 20px;border-radius:15px;background:rgba(255,255,255,.7);box-shadow:inset 0 1px #fff}.status-dot{width:7px;height:7px;border-radius:50%;background:#8daa76;margin-top:7px;flex:none}.story-card strong{font-size:12px;font-weight:550}.story-card p{font-size:11px;color:var(--muted);line-height:1.8;margin-top:5px}.story-foot{font-size:10px;letter-spacing:.12em;color:#94a18e;margin-top:64px}.login-shell{background:var(--shell);padding:7px;border-radius:34px;box-shadow:0 35px 95px -60px rgba(38,68,42,.3);min-width:0}.login-card{background:#fff;border-radius:27px;padding:42px 36px;box-shadow:inset 0 1px #fff}.login-card h2{font-size:27px;font-weight:550;letter-spacing:-.035em;margin:20px 0 10px}.muted{color:var(--muted);font-size:13px;line-height:1.8}.login-card form{margin-top:32px;display:grid;gap:22px}label{display:grid;gap:8px;font-size:12px;font-weight:500;color:#57705e;min-width:0}.field-shell{display:block;background:var(--shell);padding:3px;border-radius:14px;min-width:0;height:46px}.field-shell:focus-within{box-shadow:0 0 0 2px rgba(75,116,82,.14)}input,select{display:block;width:100%;height:40px;min-width:0;border:0;border-radius:11px;background:#fff;color:#31503d;padding:9px 12px;font-size:14px;line-height:22px;outline:none;box-shadow:inset 0 1px rgba(255,255,255,.9)}input::placeholder{color:#a0aaa0;font-size:12px}select{appearance:none;padding-right:32px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%23738578' stroke-width='1.4'%3E%3Cpath d='m3 5 4 4 4-4'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}.password-shell{position:relative}.password-shell input{padding-right:60px}.show-password{position:absolute;right:11px;top:7px;background:#fff;border:0;padding:6px;color:#758a78;font-size:11px;border-radius:12px;min-height:32px}.button{border:0;border-radius:50px;min-height:46px;padding:11px 21px;font-size:12px;font-weight:550;display:inline-flex;align-items:center;justify-content:center;gap:12px;white-space:nowrap;transition:transform .25s var(--spring),opacity .25s var(--spring),background-color .25s var(--spring)}.button:active:not(:disabled){transform:scale(.98)}.primary{color:#fff;background:var(--green);justify-content:space-between;padding-right:8px}.primary:hover:not(:disabled){background:#264b35}.button-icon{height:30px;width:30px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.1);font-size:19px;transition:transform .4s var(--spring)}.primary:hover .button-icon{transform:translate(1px,-1px)}.secondary{background:#e4eddf;color:#416346}.quiet{background:rgba(61,94,67,.05);color:#5e7761}.error{color:#9b4e3c;font-size:12px;line-height:1.8;overflow-wrap:anywhere}.error:empty{display:none}.login-note{margin-top:24px;font-size:11px;color:#94a092;line-height:1.9}.workspace{max-width:1440px;margin:auto;padding:24px 42px 40px}.workspace-nav{display:flex;justify-content:space-between;align-items:center;gap:20px;background:rgba(255,255,255,.78);padding:12px 16px 12px 20px;border-radius:28px;box-shadow:inset 0 1px #fff,0 12px 50px -36px rgba(40,67,44,.17)}.account{display:flex;align-items:center;gap:16px;min-width:0}.account>span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;max-width:230px}.account .button{min-height:38px;padding:8px 15px}.workspace-heading{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;margin:48px 0 24px}.workspace-heading h1{font-size:32px;letter-spacing:-.04em;font-weight:550;margin:16px 0 10px}.book-actions{display:grid;grid-template-columns:minmax(200px,270px) auto;gap:10px;align-items:center}.notice{display:flex;gap:12px;align-items:center;padding:14px 18px;border-radius:18px;background:#eaf0e5}.notice-pill{font-size:10px;padding:5px 9px;background:#dce7d6;color:#637a59;border-radius:20px;white-space:nowrap}.notice p{font-size:12px;color:#718166;line-height:1.7}.sync-line{display:flex;justify-content:space-between;gap:16px;min-height:38px;align-items:center;font-size:11px;color:#81917d;margin:6px 2px 10px}.workspace-error{padding:12px 18px;background:#fff1e9;border-radius:14px;margin-bottom:16px}.metrics{display:grid;grid-template-columns:1.18fr repeat(3,1fr);gap:16px;margin-bottom:24px}.metric-shell,.panel-shell{padding:5px;background:var(--shell);border-radius:25px;min-width:0}.metric-card{padding:22px;border-radius:20px;background:#fff;min-height:151px;box-shadow:inset 0 1px #fff}.featured .metric-card{background:#e3eddd}.metric-card>span{font-size:12px;color:#6f836a}.metric-card>strong{display:block;font-weight:500;font-size:34px;letter-spacing:-.04em;margin:15px 0 7px;font-variant-numeric:tabular-nums}.metric-card>small{font-size:10px;color:#8a9983}.records-panel{background:#fff;border-radius:20px;padding:26px;min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.panel-heading h2{font-size:19px;font-weight:550;margin-top:10px}.panel-heading .eyebrow{background:none;padding:0;font-size:9px}.count-pill{padding:7px 12px;font-size:11px;color:#8b9986;background:#f2f6ee;border-radius:30px}.record-filters{display:grid;grid-template-columns:220px minmax(220px,1fr);gap:20px;max-width:730px}.empty-state{text-align:center;padding:60px 16px 64px}.empty-symbol{display:inline-grid;place-items:center;width:44px;height:44px;background:#f0f5ed;color:#9caf93;border-radius:15px;font-size:25px}.empty-state h3{font-size:15px;font-weight:500;margin:18px 0 8px}.empty-state p{color:#8d9a88;font-size:12px;line-height:1.9}.table-wrap{max-width:100%;overflow:auto;margin-top:26px;border-radius:12px}table{border-collapse:collapse;width:100%;min-width:700px;table-layout:auto;font-size:12px}th,td{padding:14px 12px;text-align:left;white-space:nowrap;border-bottom:1px solid rgba(64,91,61,.06)}th{font-size:11px;font-weight:500;background:#f5f8f2;color:#809077}td{color:#526b53;max-width:320px;overflow:hidden;text-overflow:ellipsis}.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;color:#8b9985;font-size:11px}.pagination>div{display:flex;gap:8px}.pagination .button{min-height:36px;padding:7px 15px}.workspace-footer{font-size:10px;color:#9aa792;text-align:center;margin-top:28px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1050px){.login-layout{padding:48px 32px;gap:40px}.login-card{padding:34px 26px}.workspace{padding:20px 24px}.workspace-heading{align-items:flex-start;flex-direction:column}.metrics{gap:12px}.metric-card{padding:18px}.book-actions{width:100%;grid-template-columns:minmax(200px,1fr) auto;max-width:540px}}
@media(max-width:767px){.login-layout{display:flex;flex-direction:column;gap:32px;align-items:stretch;padding:32px 16px;min-height:100dvh}.login-story>.eyebrow{margin-top:30px}.login-story h1{font-size:34px;margin:18px 0}.story-shell,.story-foot{display:none}.login-card{padding:30px 24px}.login-story .intro{font-size:13px;max-width:none}.workspace{padding:16px}.workspace-nav{padding:12px;border-radius:22px;gap:10px}.brand{font-size:14px;gap:8px}.brand-mark{width:34px;height:34px;font-size:20px;border-radius:11px}.account{gap:7px}.account>span{display:none}.account .button{font-size:11px;padding:8px 12px}.workspace-heading{margin-top:30px}.workspace-heading h1{font-size:25px}.book-actions{grid-template-columns:minmax(0,1fr) auto;gap:8px}.book-actions .button{padding:10px 14px}.notice{align-items:flex-start;padding:13px}.notice p{font-size:11px}.sync-line{font-size:10px;flex-wrap:wrap;gap:3px}.metrics{grid-template-columns:1fr;gap:14px}.metric-card{min-height:135px;padding:19px 22px}.records-panel{padding:21px 16px}.record-filters{grid-template-columns:1fr;gap:16px}.empty-state{padding:44px 6px}.pagination{align-items:flex-start;flex-direction:column}.panel-heading{gap:8px}.count-pill{padding:6px 9px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.enter{animation:none}.button,.button-icon{transition:none}}
.panel-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.panel-actions .primary{min-height:40px;padding:6px 8px 6px 16px}.edit-master{min-height:32px;padding:6px 13px;font-size:11px}
.edit-entry{min-height:32px;padding:6px 13px;font-size:11px}.entry-dialog{width:min(1120px,calc(100vw - 32px))}.entry-base-date{max-width:250px;margin-bottom:20px}.entry-dialog .textarea-shell{height:auto}.entry-dialog textarea{display:block;width:100%;border:0;resize:vertical;min-height:240px;border-radius:11px;padding:16px;font:inherit;font-size:14px;line-height:1.9;color:#31503d;outline:none}.entry-help{font-size:12px;line-height:1.9;color:#8a9884;margin-top:13px}.entry-summary{font-size:12px;color:#708466;margin-top:24px;line-height:1.8}.entry-preview{margin-top:12px}.entry-preview table{min-width:930px}.entry-preview input[type=checkbox]{width:16px;height:16px;padding:0;accent-color:#50754d;box-shadow:none}.entry-preview .invalid-entry td:last-child{color:#9b4e3c;white-space:normal;min-width:180px;line-height:1.6}.entry-review-card{margin-top:22px;padding:20px;background:#f6f6ed;border-radius:19px}.entry-review-card h3{font-size:15px;font-weight:550;color:#786f43}.entry-review-card>p{font-size:12px;line-height:1.8;color:#99916b;margin-top:8px}.entry-review-card .table-wrap{margin-top:14px}.entry-review-inputs{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:18px;margin-top:18px}#entryError{margin-top:18px;line-height:1.9}
.master-dialog{border:0;width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:6px;margin:auto;border-radius:30px;background:#e8eee4;color:#284637;box-shadow:0 28px 90px -50px rgba(31,58,37,.3);overflow:auto}.master-dialog::backdrop{background:rgba(28,46,31,.22);backdrop-filter:blur(5px)}.master-panel{background:#fff;border-radius:24px;padding:28px;min-width:0}.editor-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.editor-heading h2{font-size:23px;font-weight:550;letter-spacing:-.025em;margin-top:12px}.editor-heading .button{min-height:38px}.master-fields{border:0;padding:0;margin:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px 22px}.master-fields>.wide{grid-column:1/-1}.master-fields .textarea-shell{height:auto}.master-fields textarea{display:block;resize:vertical;min-height:82px;width:100%;border:0;padding:10px 12px;font:inherit;font-size:13px;border-radius:11px;line-height:1.7;color:#31503d}.choice-group{border:0;border-radius:15px;background:#f4f7f0;padding:14px 16px;min-width:0;display:flex;gap:12px 20px;flex-wrap:wrap}.choice-group legend{font-size:12px;color:#57705e;padding:0 4px}.choice-group label{display:flex;flex-direction:row;align-items:flex-start;gap:8px;font-size:12px;overflow-wrap:anywhere;line-height:20px}.choice-group input{height:16px;width:16px;flex:none;margin:2px 0 0;padding:0;box-shadow:none;accent-color:#50754d}.choice-group p{font-size:12px;color:#83917e;line-height:1.8}.editor-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:26px}.editor-actions .primary{justify-content:center;padding:11px 24px}#masterError{margin-top:18px;white-space:pre-wrap}.master-fields:disabled{opacity:.7}
@media(max-width:767px){.panel-heading{align-items:flex-start}.panel-actions{gap:8px;flex-direction:column;align-items:flex-end}.master-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);border-radius:25px;padding:5px}.master-panel{padding:24px 18px;border-radius:20px}.master-fields{grid-template-columns:minmax(0,1fr);gap:18px}.editor-heading h2{font-size:21px}.editor-actions{gap:8px}.editor-actions .button{padding:10px 16px}.choice-group{padding:12px}.editor-heading{gap:12px}.editor-heading .quiet{padding:8px 14px}}
@media(max-width:767px){.entry-review-inputs{grid-template-columns:minmax(0,1fr)}.entry-review-card{padding:16px 12px}.entry-dialog .editor-actions{justify-content:flex-start}.entry-dialog textarea{min-height:220px}.entry-base-date{max-width:none}}
.master-dialog.entry-dialog{width:min(1120px,calc(100vw - 32px))}
@media(max-width:767px){.master-dialog.entry-dialog{width:calc(100vw - 20px)}}
.master-dialog.overtime-dialog{width:min(980px,calc(100vw - 32px))}.overtime-fields{margin-top:24px}.overtime-summary{display:flex;gap:14px;justify-content:space-between;align-items:center;padding:18px 20px;margin-top:24px;background:#eaf1e4;border-radius:17px}.overtime-summary span{font-size:12px;color:#758768}.overtime-summary strong{font-size:17px;font-weight:550;color:#426444}.overtime-cancel-info{margin-top:20px;padding:16px 18px;border-radius:16px;background:#f2f6ed;font-size:12px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}#overtimeSources input[type=checkbox]{width:16px;height:16px;min-height:0;padding:0;box-shadow:none;accent-color:#50754d}#overtimeSources>p{font-size:13px;color:#87957e;line-height:1.9;padding:20px 0}#overtimeError{margin-top:18px;line-height:1.9}.cancel-overtime{min-height:32px;padding:6px 13px;font-size:11px}.overtime-note-row td{white-space:normal;max-width:none;font-size:11px;color:#7c8d70;background:#f7f9f3;padding:8px 12px;line-height:1.8;overflow-wrap:anywhere}
@media(max-width:767px){.master-dialog.overtime-dialog{width:calc(100vw - 20px)}.overtime-summary{flex-direction:column;align-items:flex-start;padding:16px}.overtime-summary strong{font-size:16px}}
