/* 古谛财税 · clear, quiet, green. Structural rules live in styles.css. */
:root {
  --ink:#20312c; --muted:#74817b; --blue:#17745c; --navy:#203e33; --navy-deep:#17372d;
  --green:#17745c; --line:#e5ebe7; --bg:#f5f7f6; --danger:#c14c54; --radius:14px;
  --shadow:0 3px 12px rgba(28,52,41,.025); --green-soft:#eaf5ef;
  --sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Segoe UI",sans-serif;
}
html{background:var(--bg)}
body{color:var(--ink);background:var(--bg);font-family:var(--sans);font-size:14px;line-height:1.6;letter-spacing:0}
::selection{background:#cdebdc;color:#154331}
h1,h2,h3,.brand strong{font-family:var(--sans);font-weight:650;letter-spacing:-.02em}
h1{font-size:28px}h2{font-size:18px}
a{color:var(--green)}a:hover{color:#105641}
button,input,select,textarea{font-family:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #a6d8c4;outline-offset:3px}

/* Navigation */
.sidebar{background:#fff;color:#66766c;padding:28px 16px 20px;border-right:1px solid var(--line)}
.brand{gap:11px;padding:0 10px 30px}
.brand-mark{width:42px;height:42px;border-radius:12px;color:#fff;background:var(--green);font-size:23px;font-weight:700}
.brand strong{color:#234536;font-size:18px;letter-spacing:0;line-height:1.45;white-space:nowrap}
.brand small{display:block;margin-top:3px;color:#849087;font-size:10px;letter-spacing:.03em}
.nav-caption{color:#98a29c;font-size:11px;letter-spacing:.08em;padding:8px 14px 12px}
.nav{gap:5px}
.nav a{min-height:46px;padding:11px 14px;border-radius:9px;color:#67766e;font-size:14px;transition:background .15s,color .15s}
.nav a:hover{color:#234536;background:#f4f7f5}
.nav a.active{color:#166449;background:var(--green-soft);box-shadow:none;font-weight:600}
.nav .nav-symbol{font-size:18px;color:#8a9990}.nav a.active .nav-symbol{color:var(--green)}
.sidebar-bottom{padding:25px 10px 0}
.company-card{border-top:1px solid var(--line);margin-bottom:20px}
.company-card strong{color:#52645a;font-size:12px}.company-card small{color:#8c9991}
.avatar,.side-user .avatar{background:#edf4ef;color:var(--green);border-radius:10px}
.side-user strong{color:#3a4f43;font-weight:600}.side-user small{color:#8a978e}
.logout{color:#89978d;min-width:44px;min-height:44px;padding:8px}.logout:hover{color:var(--green)}

/* Workspace */
.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line)}
.breadcrumb{font-size:12px;color:#96a198}.breadcrumb strong{color:#5d7063;font-weight:500}
.topbar-info{font-size:12px;color:#839187}.status-dot{background:#39a47d;box-shadow:0 0 0 3px #e6f4ec}
.mobile-menu{min-width:44px;min-height:44px;color:#395d4b}
.main{padding:32px 34px 24px;max-width:1620px}
.page-heading{align-items:center;margin-bottom:25px}.page-heading h1{margin-bottom:6px;line-height:1.35}
.page-heading p{color:#829087;font-size:13px}.actions{gap:10px}
.footer{color:#9ba59e;font-size:11px;padding-top:10px}

/* Controls */
.button{min-height:44px;padding:10px 17px;border:1px solid #dce5de;border-radius:8px;color:#576d60;background:#fff;font-size:13px;font-weight:550;line-height:1.5;transition:background .15s,border-color .15s,box-shadow .15s}
.button:hover{color:#2d5440;background:#f6f9f7;border-color:#b6cdc0}
.button.primary,.button.green{color:#fff;background:var(--green);border-color:var(--green);box-shadow:0 2px 3px rgba(23,116,92,.08)}
.button.primary:hover,.button.green:hover{color:#fff;background:#115e49;border-color:#115e49}
.button.quiet{color:var(--green);background:transparent;border-color:transparent;box-shadow:none}.button.quiet:hover{background:var(--green-soft)}
.button.danger{color:var(--danger);background:#fff8f8;border-color:#efd8da}
.button.small{min-height:36px;padding:7px 11px;font-size:12px}
.link-button{min-height:32px;color:var(--green);font-size:12px;border-radius:5px}.link-button:hover{color:#105641;background:var(--green-soft)}
.control,.field input,.field select,.field textarea,.batch-input{color:var(--ink);background:#fff;border:1px solid #dce5df;border-radius:8px;min-height:44px;box-shadow:0 1px 2px rgba(31,56,42,.015)}
.control:focus,.field input:focus,.field select:focus,.field textarea:focus,.batch-input:focus{border-color:#73b79a;box-shadow:0 0 0 3px #e7f3ed;outline:none}
.field{gap:8px}.field label{font-size:13px;color:#53675b;font-weight:500}
.field .hint{color:#8a978e;font-size:12px;line-height:1.7}.field input[readonly]{color:#88978e;background:#f5f8f6}
.required{font-size:11px;color:#af7460;margin-left:6px;font-weight:400}.filter label{font-size:11px;color:#819087}
.check-list{border-color:var(--line)}.check-row input,.radio-row input{accent-color:var(--green)}.check-row small{color:#89978d}
.field input[type="radio"],.field input[type="checkbox"]{width:16px;height:16px;min-height:16px;padding:0;box-shadow:none;flex-shrink:0}
.radio-row{gap:12px 23px}.radio-row label{min-height:32px;cursor:pointer}.radio-row input{width:16px;min-height:0;box-shadow:none;margin:0}
.form-error{color:var(--danger);background:#fff3f3;border-color:#f1d7d9;border-radius:8px}

/* Panels, figures and tables */
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.panel-header{padding:21px 24px;background:#fff;border-bottom:1px solid var(--line)}.panel-header h2{font-size:17px}.panel-header p{color:#88958c;font-size:12px}
.panel-body{padding:23px 24px}.panel-footer{padding:14px 24px;background:#fcfdfc;color:#89978e;font-size:12px}
.toolbar{padding:18px 24px;background:#fff}
th{background:#f8faf8;color:#7f8d83;padding:13px 20px;font-size:12px;font-weight:500;border-bottom:1px solid var(--line)}
td{padding:17px 20px;border-color:#eef2ef;font-size:13px}tbody tr:hover{background:#f9fcfa}
.amount{color:#294b3b;font-weight:600;font-variant-numeric:tabular-nums}.secondary{color:#9aa49e;font-size:11px}
.result-highlight{color:#17745c;background:#edf7f1}.subtle-totals{color:#748b7c}
.summary-strip{background:#fbfdfb;border-bottom:1px solid var(--line);gap:34px;padding:21px 24px}
.summary-strip small{color:#8a998f;font-size:11px}.summary-strip strong{font-size:26px;letter-spacing:-.025em;color:#294f3d;font-weight:650}
.summary-strip strong small{color:#8a998f;font-size:12px;letter-spacing:0}.summary-strip .status-summary{font-size:12px;color:#708779}
.project-letter{color:#607e6c;background:#eff4f0;border-radius:9px}.project-letter.green{color:var(--green);background:var(--green-soft)}
.side-card{border-color:var(--line);box-shadow:var(--shadow);border-radius:var(--radius)}.info-row{border-color:#edf2ef}.info-row span{color:#89968d}
.mini-steps b{background:var(--green-soft);color:var(--green)}
.details-summary,.detail-grid{background:#f8fbf9;border-color:var(--line)}.details-summary p{color:#7b8e81}.modal-subheading{color:#627b6b}

/* Guidance and states */
.workflow{background:#fff;border-color:var(--line);border-radius:var(--radius);box-shadow:none;padding:21px 24px}
.workflow-step strong{color:#5a6e61;font-size:13px;font-weight:500}.workflow-step small{color:#9aa59d;font-size:11px}
.workflow-step:not(:last-child):after{color:#ccd8ce}.step-number{color:#668775;background:#f0f5f1;font-size:12px;width:30px;height:30px}
.workflow-step.done .step-number{color:var(--green);background:var(--green-soft)}
.onboarding{background:#eef7f1;border:1px solid #dcece1;border-radius:var(--radius)}
.onboarding h2{color:#2c5941;font-size:21px}.onboarding p{color:#779281;font-size:13px}
.setup-steps{border-top-color:#d9e8dd}.setup-step strong{color:#456b55;font-size:13px}.setup-step .step-number{background:#ddeee2;color:#387956}
.badge{padding:4px 8px;border-radius:5px;color:#87968d;background:#f0f4f1;font-size:11px}
.badge.green,.badge.blue{color:#277951;background:#eaf6ee}.badge.amber{color:#ad852e;background:#fdf5e4}.badge.red{color:var(--danger);background:#fceef0}
.notice{background:#f0f7f3;border:1px solid #dfece3;color:#6b8575;border-radius:8px;font-size:12px}.notice strong{color:#376a4c}
.notice.warning{color:#947a3c;border-color:#eee3c7;background:#fdf8ec}.notice.error{color:var(--danger);border-color:#f0d4d7;background:#fff4f4}
.notice.success{color:#2a7e55;border-color:#d1e9d9;background:#eff9f2}
.empty{color:#93a097;padding:55px 24px}.empty-symbol{color:#8aa894;background:#f0f5f1;border-radius:15px}
.empty h3{color:#61796a;font-size:16px}.empty p{color:#91a096;font-size:13px}.skeleton{color:#91a096}
.loader-dot,.loading-bar{background:#3fa27d}
.toast{border-color:#d7e7dd;border-radius:10px;color:#2e7350;background:#fff;box-shadow:0 8px 35px rgba(36,66,47,.1);font-size:13px}.toast.error{border-color:#efd0d5;color:var(--danger)}

/* Dialogs */
.modal-backdrop{background:rgba(24,42,33,.36);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.modal{background:#fff;border-radius:16px;box-shadow:0 24px 80px rgba(22,45,31,.18)}
.modal-header{padding:23px 26px 21px;background:#fff;border-color:var(--line)}
.modal-header h2{font-size:20px;letter-spacing:-.025em}.modal-header p{color:#8a978e;font-size:12px;line-height:1.7;margin-top:6px}
.close-button{width:36px;height:36px;border-radius:8px;margin-top:-5px;margin-right:-8px;color:#9caaa0}.close-button:hover{background:#f2f6f3;color:#54715f}
.modal-body{padding:24px 26px}.modal-footer{padding:16px 26px;background:#fcfdfc;border-color:var(--line)}
.upload-area{background:#f8fbf9;border:1px dashed #b5d5c2;border-radius:10px;padding:23px;gap:12px}
.upload-area strong{color:#416b52;font-size:14px}.upload-area p{color:#8a9c90;font-size:12px;line-height:1.7}
.upload-area input[type="file"]{max-width:100%;color:#7c9284;font-size:12px;border-radius:8px}
.upload-area input[type="file"]::file-selector-button{cursor:pointer;min-height:42px;padding:9px 15px;border:1px solid #c8dbcf;border-radius:7px;background:#fff;color:#3a6a4d;margin-right:12px;font:inherit}
.upload-area input[type="file"]::file-selector-button:hover{background:#edf7f1}
.import-steps{gap:10px;color:#98a69d;font-size:12px;border-bottom-color:var(--line)}.import-steps span{border-radius:6px}.import-steps .active{color:var(--green);background:var(--green-soft)}
.import-counts{border-color:var(--line);background:#f8fbf9}.import-counts strong{color:#376a4c}
.batch-input.suggested{background:#fffcf3;border-color:#e8dcb7}

/* Salary import: download → fill → upload */
.wage-import-modal{width:800px;display:flex;flex-direction:column;overflow:hidden}
.wage-import-modal>form{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.wage-import-modal .modal-header,.wage-import-modal .modal-footer{position:relative;flex-shrink:0;z-index:2}
.wage-import-modal .modal-body{background:#fafcfb}
.import-progress{display:flex;align-items:center;gap:12px;margin:0 0 22px;padding:0;list-style:none}
.import-progress li{display:flex;align-items:center;gap:8px;color:#98a69d;font-size:12px;white-space:nowrap}
.import-progress li+li::before{content:"";width:26px;height:1px;background:#dde6df;margin-right:4px}
.progress-number{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#eef3ef;color:#a0afa4;font-size:11px;font-weight:600;flex-shrink:0}
.import-progress .is-active{color:var(--green);font-weight:600}.is-active .progress-number{color:#fff;background:var(--green)}
.import-progress .is-complete{color:#608d72}.is-complete .progress-number{color:var(--green);background:#e1f0e7}
.import-guide{display:grid;gap:16px}
.import-guide-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:12px;min-width:0}
.import-guide-card:first-child{background:#f1f8f4;border-color:#dcece1}
.import-guide-heading{display:flex;gap:12px;align-items:flex-start;margin-bottom:17px}
.import-guide-number{display:grid;place-items:center;width:29px;height:29px;background:#e0f0e6;color:#2c8051;font-weight:650;font-size:12px;border-radius:8px;flex-shrink:0}
.import-guide-heading h3{margin:1px 0 5px;color:#365743;font-size:15px;letter-spacing:-.01em;line-height:1.5}
.import-guide-heading p{color:#718878;font-size:12px;line-height:1.7}.template-download{min-height:44px;font-size:13px}
.template-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:15px 0 0;border:1px solid #dce9e0;border-radius:8px;overflow:hidden;background:#fff}
.template-columns>span,.template-columns>div{padding:11px 14px;min-width:0;color:#678371;font-size:12px;border-right:1px solid #e5eee8}
.template-columns>:last-child{border-right:0}.template-columns small{display:block;margin-top:4px;color:#7f9185;font-size:12px}.template-columns strong{font-weight:500}
.import-context{margin:2px 0 18px;gap:16px}.import-mode{margin:0 0 18px;padding:0;border:0;min-inline-size:0}
.import-mode>legend{padding:0;margin-bottom:6px}.import-mode .hint{margin-top:7px;color:#8a978e;font-size:12px;line-height:1.7}
.import-mode>label,.import-mode>legend{font-size:12px;color:#72897b}.import-mode .radio-row{gap:10px 20px}.import-mode .radio-row label{color:#5d7665;font-size:12px}
.import-upload{border:1px dashed #b9d3c2;background:#fafdfb;padding:20px 16px;gap:11px}.import-upload strong{font-size:13px}.import-upload p{color:#7a8e80;font-size:12px}
.import-help{padding-top:17px;color:#8a9c90;font-size:12px;line-height:1.8}.import-help summary{cursor:pointer;color:#7b9485;width:fit-content;padding:5px 0}
.import-help summary:hover{color:var(--green)}.import-help p{margin:8px 0 0;color:#91a096}
.import-safe-note{color:#7a8e80;font-size:12px;line-height:1.8;margin:17px 0 0}
.selected-file-name{max-width:100%;overflow-wrap:anywhere;color:#4e825f;font-size:12px}
.import-upload.has-file{border-color:#68ad8d;background:#eff8f2}

/* Sign in */
.auth-screen{grid-template-columns:1fr 1fr;background:#fff}
.auth-brand{padding:44px 64px;color:#fff;background:#eaf4ee}
.auth-brand:after{width:410px;height:410px;right:-175px;bottom:-200px;border:1px solid #cbded0;box-shadow:0 0 0 90px #d9eadd55,0 0 0 180px #d9eadd33}
.auth-brand .brand{padding:0}.auth-brand .brand strong{color:#294f39;font-size:21px}.auth-brand .brand small{color:#849d8c;font-size:11px}
.auth-intro{padding:65px 0}.eyebrow{font-size:11px;letter-spacing:.13em;color:#6d9c80;margin-bottom:20px}
.auth-intro h1{color:#284f38;font-size:39px;font-weight:650;line-height:1.55;letter-spacing:-.025em;margin-bottom:20px}
.auth-intro>p{color:#7b9686;font-size:14px;line-height:1.95;max-width:420px}
.auth-features{gap:17px;margin-top:38px;color:#678d75;font-size:13px}.auth-features b{background:#d8eadd;color:#53926b;border:0;width:22px;height:22px;font-size:11px}
.auth-brand>small{color:#9caf9f;font-size:11px}.auth-main{background:#fff;padding:44px}.auth-form{max-width:370px}
.auth-form h2{color:#304e3b;font-size:25px;letter-spacing:-.025em;margin-bottom:8px}.auth-form>p{color:#8b9a90;font-size:13px;margin-bottom:27px}
.auth-tabs{border-bottom-color:#e9eeea;gap:27px;margin-bottom:27px}.auth-tabs button{color:#a0aca3;font-size:13px;padding:11px 0 13px}
.auth-tabs button.active{border-color:var(--green);color:var(--green);font-weight:600}
.auth-form .field{margin-bottom:20px}.auth-form .field input{min-height:47px}.auth-form .button.block{min-height:47px;margin-top:9px}
.auth-note{border-top-color:#edf1ed;color:#a0ada3;font-size:11px;margin-top:26px;padding-top:20px}

/* Responsive */
@media(min-width:1700px){.main{padding:38px 45px}}
@media(max-width:1200px){
  .brand{padding-left:6px;padding-right:6px;gap:9px}.brand strong{font-size:17px}.main{padding:28px 24px 22px}
  .auth-brand{padding:38px 42px}.auth-intro h1{font-size:33px}.auth-main{padding:36px}
}
@media(max-width:950px){.auth-brand{padding:34px}.auth-intro h1{font-size:29px}.auth-main{padding:30px}.summary-strip{gap:24px}}
@media(max-width:760px){
  html,body{overflow-x:hidden}.sidebar{box-shadow:15px 0 60px rgba(25,51,35,.12)}
  .topbar{height:64px;padding:0 16px}.main{padding:23px 16px}.page-heading{align-items:flex-start;gap:15px}
  .page-heading h1{font-size:24px}.page-heading p{font-size:12px;line-height:1.8}.page-heading .actions{gap:8px}
  .button{min-height:44px;padding:10px 13px;font-size:12px}.button.small,.link-button{min-height:40px}
  .control,.field input,.field select,.field textarea{font-size:16px;min-height:46px}.field label{font-size:12px}
  .panel{border-radius:12px}.panel-header,.toolbar{padding:17px}.panel-header h2{font-size:16px}.panel-header p{font-size:11px}
  .panel-body{padding:18px}.panel-footer{padding:13px 17px;font-size:11px}
  .workflow{padding:17px 15px;border-radius:12px}.workflow-step strong{font-size:12px}
  .summary-strip{padding:18px;gap:20px}.summary-strip strong{font-size:23px}.onboarding{padding:20px 18px}.onboarding h2{font-size:19px}
  .modal-backdrop{padding:10px}.modal{max-height:calc(100dvh - 20px);border-radius:14px}
  .modal-header{padding:21px 19px 18px;gap:10px}.modal-header h2{font-size:18px}.modal-header p{font-size:11px}
  .modal-body{padding:19px}.modal-footer{padding:13px 19px;gap:8px}.modal-footer .button{min-height:44px}
  .close-button{min-width:40px;height:40px;margin-top:-6px}.upload-area{padding:20px 15px}
  .upload-area input[type="file"]{width:100%}.upload-area input[type="file"]::file-selector-button{min-height:44px;padding:10px 12px;margin-right:8px}
  .import-progress{gap:7px;justify-content:space-between;margin-bottom:18px}.import-progress li{flex:1;flex-direction:column;gap:6px;font-size:11px;text-align:center}
  .import-progress li+li::before{display:none}.progress-number{width:22px;height:22px;font-size:10px}
  .import-guide{gap:13px}.import-guide-card{padding:18px 15px;border-radius:10px}.import-guide-heading{gap:9px;margin-bottom:15px}
  .import-guide-heading h3{font-size:14px}.import-guide-heading p{font-size:12px}.import-guide-number{width:27px;height:27px}
  .template-download{width:100%;font-size:12px}.template-columns>span,.template-columns>div{padding:10px 8px;font-size:12px}.template-columns small{font-size:11px}
  .import-context{gap:15px}.import-mode .radio-row{gap:6px 17px}.import-mode .radio-row label{min-height:40px;font-size:12px}
  .import-help,.import-safe-note{font-size:12px}.import-help summary{min-height:40px;display:flex;align-items:center}
  .auth-screen,.auth-brand,.auth-main,.auth-form,.auth-intro{min-width:0;width:100%;max-width:100%}
  .auth-screen{grid-template-columns:1fr}.auth-brand{min-height:0;padding:25px 25px 28px}.auth-brand .brand{padding-bottom:23px}
  .auth-brand .brand strong{font-size:18px}.auth-intro{padding:0;margin:0}.auth-intro h1{font-size:26px;line-height:1.45;margin-bottom:11px;overflow-wrap:anywhere}
  .auth-intro>p{font-size:12px;line-height:1.9;max-width:100%}.auth-main{padding:29px 25px 38px}.auth-form{max-width:460px;margin:auto}
  .auth-form h2{font-size:22px}.auth-form>p{font-size:12px;margin-bottom:20px}.auth-form .field input{font-size:16px}.auth-tabs{margin-bottom:23px}
  .footer{font-size:10px;gap:10px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* GUDI brand alignment — preserve the verified workspace structure. */
:root{--ink:#1d2d23;--muted:#65725f;--green:#233f2e;--blue:#233f2e;--bg:#f4f5ef;--line:#dce2d6;--green-soft:#e7edde}
.brand-mark{border-radius:6px;background:#152c20;color:#d4e6ba}.brand:hover{opacity:.85}.brand strong{color:#1e3326}.brand small{letter-spacing:.06em}
.button,.control,.field input,.field select,.field textarea{border-radius:5px}.button.primary:hover,.button.green:hover{background:#37543b;border-color:#37543b}.panel,.modal{border-radius:9px}
.sidebar{background:#fcfcf8}.nav a{border-radius:5px}.nav a.active{color:#203c2a;background:#e8efdc}.nav-symbol{color:#819172}.topbar{background:#fcfcf8}.page-heading p{color:#697864}
.auth-brand{background:#e7edde}.auth-intro h1{color:#213b29}.auth-main{background:#fafbf6}.auth-brand .brand small{color:#718665}.modal-header,.modal-footer{background:#fcfdf9}
