:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#243d49;background:#f3f6f7;font-synthesis:none;--accent:#007fbd;--nav:#102b43;--muted:#71838d;--line:#e2eaed}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:0}button:disabled{opacity:.55;cursor:wait}a{color:var(--accent)}button:focus-visible,a:focus-visible{outline:3px solid #007fbd;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:-.7px;margin-bottom:8px}h2{font-size:18px}h3{font-size:15px}.muted{color:var(--muted);font-size:13px;line-height:1.7}.small{font-size:12px}.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:20px;letter-spacing:1px}.logo{width:37px;height:37px;display:grid;place-items:center;background:#007fbd;color:white;border-radius:11px;font-size:24px;letter-spacing:0}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-story{background:var(--nav);color:white;padding:64px 12%;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.auth-story:after{content:"";position:absolute;width:390px;height:390px;border:80px solid #ffffff04;border-radius:50%;right:-170px;bottom:-120px}.auth-story h1{font-size:40px;line-height:1.45;margin:65px 0 20px}.auth-story p{color:#afc5ce;line-height:1.9}.auth-points{display:flex;gap:25px;margin-top:28px;font-size:13px;color:#b8d0d5}.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px 24px}.auth-box{width:100%;max-width:410px}.auth-box h2{font-size:26px;margin-bottom:8px}.tabs{display:flex;gap:4px;padding:4px;border-radius:10px;background:#e9eff1;margin:28px 0}.tabs button{flex:1;padding:10px 6px;color:#6b7d86;background:none;border-radius:7px;font-size:13px}.tabs button.active{background:white;color:var(--accent);box-shadow:0 2px 5px #20333a0a;font-weight:700}label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.field{margin-bottom:17px}input,select,textarea{width:100%;border:1px solid #d6e1e5;border-radius:8px;background:white;padding:11px 12px;color:#243d49;min-height:43px;outline:none}input:focus,select:focus,textarea:focus{border-color:#007fbd;box-shadow:0 0 0 3px #007fbd14}textarea{resize:vertical;min-height:88px}.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;padding:11px 18px;border-radius:8px;background:var(--accent);color:white;font-weight:600;font-size:13px;white-space:nowrap}.btn.secondary{background:white;border:1px solid var(--line);color:#46606d}.btn.danger{background:#b74149}.btn.small{padding:7px 11px;font-size:12px}.wide{width:100%}.error{background:#fff0f0;color:#aa333b;padding:11px 13px;border-radius:8px;font-size:13px;margin-bottom:18px;line-height:1.6}.success{background:#e5f3fc;color:#007fbd;padding:13px;border-radius:8px;line-height:1.7;font-size:13px}.shell{min-height:100vh;display:grid;grid-template-columns:225px minmax(0,1fr)}.sidebar{background:var(--nav);color:white;position:fixed;width:225px;inset:0 auto 0 0;padding:30px 18px;display:flex;flex-direction:column;z-index:15}.sidebar .brand{padding:0 9px;margin-bottom:38px}.nav-label{color:#7995a2;font-size:10px;letter-spacing:2px;margin:18px 14px 10px}.nav-btn{width:100%;display:flex;align-items:center;gap:12px;background:none;color:#a9bfc9;text-align:left;padding:13px 15px;border-radius:8px;font-size:14px;margin:3px 0}.nav-btn.active{background:#124c76;color:#72caff}.nav-btn:hover{background:#ffffff0b}.nav-icon{width:19px;text-align:center;font-size:17px}.sidebar-bottom{margin-top:auto;border-top:1px solid #ffffff12;padding:22px 10px 0}.avatar{width:35px;height:35px;display:grid;place-items:center;background:#e5f3fc;color:#007fbd;font-weight:700;border-radius:10px}.profile{display:flex;align-items:center;gap:10px}.sidebar .muted{color:#8da7b2;font-size:11px}.logout{margin-top:16px;background:none;color:#93acb7;font-size:12px;padding:0}.main{grid-column:2;padding:0 36px 40px;min-width:0}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:30px}.breadcrumbs{font-size:12px;color:#80919a}.company-pill{display:flex;align-items:center;gap:8px;font-size:12px;color:#4e6570}.online{width:7px;height:7px;background:#007fbd;border-radius:50%}.page-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:25px}.eyebrow{font-size:11px;color:var(--accent);font-weight:700;letter-spacing:1.5px;margin-bottom:10px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin-bottom:25px}.card,.panel{background:white;border:1px solid var(--line);border-radius:12px}.card{padding:22px}.card-label{font-size:12px;color:#788c96}.card-number{font-size:31px;font-weight:700;color:#183b46;margin:12px 0 7px}.card-note{font-size:11px;color:#8b9da5}.panel{padding:23px;margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:21px}.panel-head h2{margin:0}.quick-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.quick{background:#f3f9fe;border:1px solid #d5e8f5;border-radius:10px;text-align:left;padding:18px 13px;color:#27434d}.quick:hover{border-color:#007fbd;background:#f3f9fe}.quick span{display:block}.quick-icon{width:37px;height:37px;background:#e5f3fc;color:#007fbd;border-radius:10px;display:grid!important;place-items:center;margin-bottom:14px;font-size:19px}.quick-name{font-size:13px;font-weight:600}.quick-desc{font-size:10px;color:#91a09f;margin-top:6px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;white-space:nowrap}th{font-size:11px;font-weight:500;color:#899ba4;padding:12px 13px;background:#f6f9fa;border-bottom:1px solid var(--line)}td{padding:16px 13px;border-bottom:1px solid #eff3f5}tr:last-child td{border-bottom:0}.link-btn{padding:0;background:none;color:var(--accent);font-size:inherit;text-align:left;white-space:normal}.badge{display:inline-block;padding:5px 9px;border-radius:5px;font-size:11px;background:#f0f3f5;color:#778893}.badge.pending{background:#fff5df;color:#ac7b15}.badge.approved,.badge.active{background:#e5f3fc;color:#007fbd}.badge.rejected,.badge.disabled{background:#fcecef;color:#b34d61}.filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.filters input{max-width:240px}.filters select{width:160px}.empty{text-align:center;padding:45px 20px;color:#8a9ba4;font-size:13px;line-height:1.8}.empty-icon{font-size:30px;color:#b8ccc9;margin-bottom:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.notice{padding:15px 19px;background:#e5f3fc;border-radius:9px;color:#426985;font-size:12px;line-height:1.7;margin-bottom:22px}.modal-overlay{position:fixed;inset:0;background:#112c396b;z-index:40;display:flex;justify-content:center;align-items:center;padding:24px;backdrop-filter:blur(3px)}.modal{background:white;border-radius:15px;width:620px;max-width:100%;max-height:90vh;overflow:auto;padding:28px;box-shadow:0 30px 100px #12293625}.modal-header{position:sticky;top:-28px;z-index:3;display:flex;align-items:center;justify-content:space-between;margin:-2px 0 23px;padding:2px 0 12px;background:#fff}.modal-header h2{margin:0}.close{font-size:25px;background:#f3f6f7;color:#70848f;width:30px;height:30px;border-radius:50%;line-height:1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:23px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.detail-key{font-size:11px;color:#8c9ca3;margin-bottom:6px}.detail-value{font-size:13px;line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}.timeline{padding-left:20px;border-left:2px solid #d5e8f5}.timeline-item{margin-bottom:20px;position:relative}.timeline-item:before{content:"";position:absolute;left:-26px;top:4px;width:9px;height:9px;border:2px solid white;border-radius:50%;background:#007fbd}.timeline-item p{font-size:12px;margin:6px 0;color:#778c95}.mobile-brand{display:none}.menu-toggle{display:none}.footnote{font-size:11px;color:#9baab0;text-align:center;margin-top:30px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#123f64;color:white;border-radius:9px;padding:13px 23px;font-size:13px;z-index:99;display:none;max-width:90vw;box-shadow:0 6px 25px #142b3920}.section-title{display:flex;align-items:center;gap:9px}.section-title:before{content:"";width:3px;height:17px;background:#007fbd;border-radius:3px}.loading{padding:90px;text-align:center;color:#81969d}.admin-tabs{display:flex;gap:8px;margin-bottom:20px}.admin-tabs button{border-radius:7px;background:#e8eff0;color:#71858e;padding:9px 17px;font-size:13px}.admin-tabs .active{background:#e5f3fc;color:#007fbd}.invite-token{padding:15px;background:#f3f7f8;border:1px dashed #d5e8f5;border-radius:8px;overflow-wrap:anywhere;font-family:monospace;line-height:1.8}.row-actions{display:flex;gap:9px}.readonly{background:#f5f7f8}.help{font-size:11px;color:#889ba4;margin-top:6px;line-height:1.6}@media(min-width:1400px){.main{padding-left:48px;padding-right:48px}}@media(max-width:1000px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{width:190px;padding:25px 12px}.main{padding:0 23px 30px}.cards{gap:10px}.card{padding:17px}.quick-grid{gap:8px}.quick{padding:15px 10px}.quick-desc{display:none}}@media(max-width:760px){.auth{grid-template-columns:1fr}.auth-story{padding:27px 25px}.auth-story h1,.auth-story p,.auth-points{display:none}.auth-panel{padding:35px 24px}.shell{display:block}.sidebar{transform:translateX(-100%);transition:transform .2s;width:225px}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #122b3960}.main{padding:0 17px 25px}.topbar{height:66px;margin-bottom:23px}.breadcrumbs{display:none}.mobile-brand{display:block;font-weight:700;color:#254b55}.menu-toggle{display:block;background:none;color:#3a5a66;font-size:23px;padding:5px;margin-right:9px}.topbar-left{display:flex;align-items:center}.company-pill{font-size:10px;max-width:150px}.cards{grid-template-columns:repeat(2,1fr);gap:10px}.card-number{font-size:27px}.quick-grid{grid-template-columns:repeat(3,1fr)}.quick{padding:14px}.page-head{align-items:flex-start}h1{font-size:23px}.page-head .btn{padding:10px 12px}.grid2{grid-template-columns:1fr;gap:0}.panel{padding:18px}.modal{padding:22px;max-height:93vh}.modal-overlay{padding:12px}.detail-grid{gap:14px}.auth-story .brand{font-size:18px}.filters input{max-width:none;flex:1;min-width:130px}.filters select{width:125px}.footnote{line-height:1.8}.company-pill .online{flex-shrink:0}}
.logo-symbol{padding:7px;background:linear-gradient(135deg,#007fbd,#0d8caa);box-shadow:0 7px 18px #007fbd40;position:relative;overflow:hidden}.logo-symbol:after{content:"";position:absolute;inset:-18px;background:linear-gradient(120deg,transparent 35%,#ffffff45 48%,transparent 60%);transform:translateX(-100%);animation:logo-shine 5s ease-in-out infinite}.logo-symbol svg{width:100%;height:100%;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;position:relative;z-index:1}@keyframes logo-shine{0%,65%{transform:translateX(-100%)}85%,100%{transform:translateX(100%)}}
.logo-symbol svg{stroke:none}.logo-symbol:after{display:none}

.office-date{position:relative;min-width:0}.office-date input[type=date]{position:relative;z-index:1;color:transparent!important;background:transparent;cursor:pointer}.office-date input[type=date]::-webkit-datetime-edit{opacity:0}.office-date input[type=date]::-webkit-calendar-picker-indicator{opacity:.65;cursor:pointer}.office-date-label{position:absolute;left:13px;top:50%;transform:translateY(-50%);pointer-events:none;color:#889ba4;font-size:14px;letter-spacing:.3px}.office-date.has-date .office-date-label{color:#243d49;font-variant-numeric:tabular-nums}.office-date:focus-within .office-date-label{color:#007fbd}
/* Compact attachment picker */ .modal input[type="file"]{font-size:13px;min-height:40px;padding:8px 10px}.modal input[type="file"]::file-selector-button{font:inherit;font-size:12px;padding:5px 9px;margin-right:8px;border:1px solid #d6e1e5;border-radius:5px;background:#f3f6f7;color:#46606d}
