.detail-item__attachments[data-v-01009985]{flex-direction:column;gap:8px;display:flex}.detail-item--full[data-v-01009985]{width:100%}.detail-item__link[data-v-01009985]{color:var(--primary-strong);word-break:break-all;text-decoration:none}.detail-item__link[data-v-01009985]:hover{text-decoration:underline}.stats-grid[data-v-b92ff6b7]{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;display:grid}.stat-box[data-v-b92ff6b7]{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;padding:24px}.stat-box__label[data-v-b92ff6b7]{color:var(--text-muted);margin-bottom:8px;font-size:14px}.stat-box__value[data-v-b92ff6b7]{color:var(--primary-strong);font-size:32px;font-weight:600}.timesheet-table[data-v-b92ff6b7]{max-height:500px;overflow:auto}.timesheet-table th[data-v-b92ff6b7],.timesheet-table td[data-v-b92ff6b7]{white-space:nowrap;text-align:center;min-width:80px}.timesheet-table .sticky-col[data-v-b92ff6b7]{background:var(--surface);z-index:1;text-align:left;box-shadow:1px 0 0 var(--border);position:sticky;left:0}:root[data-theme=dark] .timesheet-table .sticky-col[data-v-b92ff6b7]{background:var(--canvas)}.custom-dropdown[data-v-b92ff6b7]{background:var(--surface);border:1px solid var(--border);width:100%;max-height:240px;box-shadow:var(--shadow);z-index:50;border-radius:8px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.custom-dropdown__item[data-v-b92ff6b7]{cursor:pointer;padding:10px 16px;font-size:14px;transition:background-color .2s}.custom-dropdown__item[data-v-b92ff6b7]:hover{background-color:#0000000a}:root[data-theme=dark] .custom-dropdown__item[data-v-b92ff6b7]:hover{background-color:#ffffff0d}.custom-dropdown__item.is-active[data-v-b92ff6b7]{color:var(--primary-strong);background-color:#00d4a414;font-weight:500}.custom-dropdown__empty[data-v-b92ff6b7]{text-align:center;color:var(--text-muted);padding:16px;font-size:14px}.stats-grid[data-v-555a1408]{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;display:grid}.stat-box[data-v-555a1408]{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;padding:24px}.stat-box__label[data-v-555a1408]{color:var(--text-muted);margin-bottom:8px;font-size:14px}.stat-box__value[data-v-555a1408]{color:var(--primary-strong);font-size:32px;font-weight:600}.custom-dropdown[data-v-555a1408]{background:var(--surface);border:1px solid var(--border);width:100%;max-height:240px;box-shadow:var(--shadow);z-index:50;border-radius:8px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.custom-dropdown__item[data-v-555a1408]{cursor:pointer;padding:10px 16px;font-size:14px;transition:background-color .2s}.custom-dropdown__item[data-v-555a1408]:hover{background-color:#0000000a}:root[data-theme=dark] .custom-dropdown__item[data-v-555a1408]:hover{background-color:#ffffff0d}.custom-dropdown__item.is-active[data-v-555a1408]{color:var(--primary-strong);background-color:#00d4a414;font-weight:500}.custom-dropdown__empty[data-v-555a1408]{text-align:center;color:var(--text-muted);padding:16px;font-size:14px}:root{--bg:#f5f7fb;--bg-soft:#eef2f8;--surface:#fff;--surface-soft:#f8fafc;--text:#172033;--text-muted:#667085;--text-soft:#98a2b3;--border:#dbe3ef;--primary:#111827;--primary-strong:#0b1220;--accent:#00d4a4;--accent-deep:#00b48a;--shadow:0 20px 60px #0f172a1a;--shadow-soft:0 8px 30px #0f172a14;--danger:#d64545;--warning-bg:#00d4a41f;--table-stripe:#f9fbff;--sidebar-width:248px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0b1220;--bg-soft:#121a2b;--surface:#111827;--surface-soft:#192234;--text:#f3f4f6;--text-muted:#c4cbda;--text-soft:#8a94a8;--border:#263246;--primary:#f3f4f6;--primary-strong:#fff;--accent:#1fe4b6;--accent-deep:#0fc39b;--shadow:0 20px 60px #00000059;--shadow-soft:0 10px 35px #00000047;--danger:#ff7b7b;--warning-bg:#1fe4b629;--table-stripe:#151f31;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:radial-gradient(circle at top left, #00d4a41a, transparent 28%), linear-gradient(180deg, var(--bg-soft) 0%, var(--bg) 100%);color:var(--text);margin:0;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:12px;outline:none;padding:12px 14px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px #00d4a41f}#app{min-height:100vh}.login-page{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100vh;padding:32px 16px;display:flex}.login-page__hero{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.sidebar__logo,.login-page__hero--simple{width:100%}.sidebar__logo{background:var(--primary-strong);width:56px;height:56px;color:var(--surface);letter-spacing:1px;box-shadow:var(--shadow-soft);border-radius:18px;place-items:center;font-weight:700;display:grid}:root[data-theme=dark] .sidebar__logo{color:#0b1220}.login-page__hero h1{letter-spacing:-1.2px;margin:0;font-size:40px;line-height:1.08}.login-page__hero p,.login-card__header p,.page-subtitle,.panel-card__header p,.table-placeholder,.detail-modal__header p{color:var(--text-muted);line-height:1.65}.login-page__hero-subtitle{color:var(--text-soft);margin:0;font-size:16px;font-weight:600}.login-card{background:var(--surface);border:1px solid var(--border);width:min(460px,100%);box-shadow:var(--shadow);border-radius:28px;padding:36px}.login-card__header h2,.panel-card__header h3,.detail-modal__header h3,.detail-section h4{margin:8px 0}.login-form{flex-direction:column;gap:18px;margin-top:24px;display:flex}.field-group{flex-direction:column;gap:8px;display:flex}.field-group span{color:var(--text-muted);font-size:14px}.field-group input,.field-group select,.field-group textarea{box-sizing:border-box;background:var(--surface);border:1px solid var(--border);width:100%;color:var(--ink);border-radius:8px;padding:10px 14px;font-size:14px;transition:all .2s}.login-form__submit{margin-top:4px}.theme-toggle,.primary-button,.ghost-button,.text-button,.sidebar__nav-item{border:0;border-radius:999px;transition:transform .2s,background .2s,color .2s}.theme-toggle,.ghost-button{background:var(--surface-soft);color:var(--text);border:1px solid var(--border);padding:10px 16px}.theme-toggle{align-items:center;gap:8px;width:auto;display:inline-flex}.theme-toggle__icon{text-align:center;width:18px}.primary-button{background:var(--primary-strong);color:var(--surface);padding:8px 16px;font-size:14px;font-weight:600}:root[data-theme=dark] .primary-button{color:#0b1220}.primary-button:disabled,.ghost-button:disabled{opacity:.6;cursor:not-allowed}.ghost-button{padding:8px 16px;font-size:14px}.text-button{color:var(--primary-strong);background:0 0;padding:4px 8px;font-size:14px;font-weight:600}.admin-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffb8;height:100vh;padding:24px;position:sticky;top:0}:root[data-theme=dark] .sidebar{background:#111827d1}.sidebar__brand{align-items:center;gap:14px;margin-bottom:36px;display:flex}.sidebar__title{font-weight:700}.sidebar__subtitle{color:var(--text-muted);margin-top:6px;font-size:13px}.sidebar__nav{flex-direction:column;gap:10px;display:flex}.sidebar__nav-item{text-align:center;color:var(--text-muted);background:0 0;padding:14px 16px}.sidebar__nav-item--active{background:var(--primary-strong);color:var(--surface)}:root[data-theme=dark] .sidebar__nav-item--active{color:#0b1220}.admin-shell__main{flex:1;min-width:0;padding:24px}.topbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-title{margin:0;font-size:32px;line-height:1.15}.topbar__actions,.topbar__user,.toolbar-actions,.table-actions,.project-link-banner{align-items:center;gap:12px;display:flex}.topbar__user-name{color:var(--text-muted);font-size:14px}.content-panel{flex-direction:column;gap:20px;display:flex}.panel-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);border-radius:24px;padding:24px}.panel-card--compact{padding:16px 20px}.panel-card__header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.panel-card__header--center{text-align:center;justify-content:center}.toolbar-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:16px;display:grid}.toolbar-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.table-wrapper{overflow:auto}.data-table{border-collapse:collapse;width:100%;min-width:860px}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 14px;font-size:14px}.data-table th{color:var(--text-muted);white-space:nowrap;font-weight:600}.text-truncate{white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:300px;display:inline-block;overflow:hidden}.data-table tbody tr:nth-child(2n){background:var(--table-stripe)}.status-tag{background:var(--warning-bg);color:var(--accent-deep);white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.text-muted{color:var(--text-soft)}.form-error{color:var(--danger);font-size:14px}.table-placeholder{text-align:center;padding:28px 12px}.pagination-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;margin-top:18px;display:flex}.pagination-bar__info{text-align:center;min-width:112px;color:var(--text-muted);font-size:14px}.pagination-bar__jump{color:var(--text-muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.pagination-bar__jump input{text-align:center;width:88px}.pagination-bar__jump-button{width:auto}.modal-mask{z-index:20;background:#0f172a70;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.detail-modal{background:var(--surface);border:1px solid var(--border);width:min(800px,100%);max-height:calc(100vh - 48px);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.detail-modal__body{flex:1;padding:24px;overflow-y:auto}.detail-modal__header{background:var(--surface);z-index:10;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:20px 24px 16px;display:flex}.detail-modal__header h3{margin:0 0 4px;font-size:18px}.detail-modal__header p{margin:0;font-size:13px}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.detail-item{background:var(--surface-soft);border:1px solid var(--border);border-radius:18px;padding:16px}.detail-item__label{color:var(--text-soft);margin-bottom:8px;font-size:13px;display:block}.detail-item__value{word-break:break-word;line-height:1.7}.detail-section{margin-top:24px}.supplement-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.supplement-form__full{grid-column:1/-1}.detail-actions{background:var(--surface);border-top:1px solid var(--border);justify-content:flex-end;padding:16px 24px;display:flex}.form-success{color:#0f9f6e;font-size:14px}.project-link-banner{flex-wrap:wrap;justify-content:space-between}.custom-select-wrapper input{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=1200px){.toolbar-grid,.toolbar-grid--three{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=960px){.admin-shell{grid-template-columns:1fr;display:block}.login-page__hero{padding:0}.login-page__hero h1{font-size:36px}.login-card{width:auto;padding:24px}.sidebar{border-right:0;border-bottom:1px solid var(--border);width:auto;height:auto;padding:20px;position:static}.admin-shell__main{padding:16px}.topbar{flex-direction:column;align-items:stretch}.topbar__actions,.topbar__user,.toolbar-actions{flex-wrap:wrap}.detail-grid,.supplement-form{grid-template-columns:1fr}}@media (width<=640px){.toolbar-grid,.toolbar-grid--three{grid-template-columns:1fr}.panel-card,.detail-modal{border-radius:20px;padding:18px}.page-title{font-size:26px}.theme-toggle,.primary-button,.ghost-button{justify-content:center;width:100%}}
