:root{
    font-family:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC",sans-serif;
    color:#17263d;
    background:#f6f8fb;
    font-size:14px;
    --blue:#0769df;
    --blue-dark:#0459c2;
    --blue-soft:#eaf3ff;
    --ink:#17263d;
    --muted:#69778c;
    --line:#e2e7ef;
    --surface:#fff;
    --surface-soft:#f7f9fc;
    --warn:#ef7819;
    --warn-soft:#fff2e5;
    --red:#c84545;
    --green:#15966b;
    --purple:#7c4ec8;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;overflow:hidden;background:#f6f8fb}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{outline-offset:3px}
button{cursor:pointer;border:1px solid #d8e0ea;background:#fff;border-radius:7px;padding:9px 13px;color:#274057;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}
button:hover{background:#f3f7fc;border-color:#bfcddd}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9cc8fa;outline-offset:1px}
button:disabled{opacity:.55;cursor:wait}
button.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 2px 6px #0769df2b}
button.primary:hover{background:var(--blue-dark)}
button.danger{color:var(--red);border-color:#efc2c2}
a{color:var(--blue)}
h1,h2,h3,p{margin-top:0}
h1{font-size:29px;line-height:1.25;letter-spacing:-.02em}
h2{font-size:20px}
h3{font-size:15px}
p{line-height:1.7}
small,.muted{color:var(--muted)}
.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;flex:none}
.demo-banner{height:28px;background:#fff5e8;color:#8a551a;text-align:center;padding:6px 12px;font-size:12px;border-bottom:1px solid #f0dcc1}
.shell{height:calc(100vh - 28px);display:grid;grid-template-columns:244px minmax(520px,1fr) minmax(470px,560px);grid-template-rows:68px minmax(0,1fr);background:#fff}
.app-header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 26px;border-bottom:1px solid var(--line);background:#fff;z-index:4}
.header-brand{display:flex;align-items:center;gap:18px;white-space:nowrap}
.header-brand strong{font-size:24px;letter-spacing:-.03em;color:#10213a}
.header-brand span{font-size:12px;color:#5f6c7d;background:#f1f3f6;border-radius:5px;padding:6px 10px}
.header-actions{display:flex;align-items:center;gap:12px}
.ledger-button{height:42px;display:inline-flex;align-items:center;gap:6px;padding:0 15px;border:1px solid #1670d2;border-radius:6px;text-decoration:none;font-weight:600;background:#fff}
.ledger-button .icon{width:16px;height:16px}
.create-button{height:42px;display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:15px;padding:0 18px}
.create-button .icon{width:18px;height:18px}
.identity-menu{height:44px;border:0;display:flex;align-items:center;gap:9px;background:transparent;padding:2px 3px}
.identity-menu:hover{background:#f5f7fa}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e5f0ff;color:#19599c;font-weight:700}
.chevron{font-size:18px;color:#526277}
.sidebar{grid-row:2;display:flex;flex-direction:column;min-height:0;padding:20px 11px 16px;background:#f8fafc;border-right:1px solid var(--line)}
.nav{display:grid;gap:4px}
.nav-item{min-height:48px;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;border-radius:7px;padding:10px 17px;color:#182840;font-size:16px;text-align:left}
.nav-item>span{display:flex;align-items:center;gap:14px}
.nav-item .icon{width:23px;height:23px}
.nav-item b{min-width:24px;height:24px;display:grid;place-items:center;padding:0 6px;border-radius:12px;background:transparent;color:#627184;font-size:13px;font-weight:500}
.nav-item:hover{background:#eff4fa}
.nav-item.active{background:#e3f0ff;color:#0564cf;font-weight:700}
.nav-item.active b{background:#fff;color:#0564cf}
.nav-divider{margin:20px 8px 10px;padding:14px 8px 0;border-top:1px solid var(--line);color:#6b7889;font-size:13px}
.nav-types .nav-item{font-size:15px}
.nav-footer{margin-top:auto;padding-top:13px;border-top:1px solid var(--line)}
.workspace{grid-row:2;min-width:0;overflow:auto;padding:20px 20px 28px;background:#fff}
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.page-heading h1{margin:0 0 5px}
.page-heading p{margin:0;color:var(--muted);font-size:15px}
.compact-refresh{padding:7px 11px;color:#5a6b7f}
.summary-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:10px 0 20px}
.summary-card{height:108px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;border:1px solid #edf0f4;background:#f7f9fc;border-radius:7px;padding:16px 22px;text-align:left}
.summary-card:hover,.summary-card.active{background:#eef6ff;border-color:#b8d7fa}
.summary-card span{font-size:17px;color:#1e2c41}
.summary-card strong{font-size:39px;line-height:1;color:#0966cc}
.summary-card.urgent strong{color:var(--warn)}
.list-controls{display:grid;grid-template-columns:minmax(240px,1fr) 180px 52px;gap:9px;margin-bottom:12px}
.search-box{height:52px;display:flex;align-items:center;gap:11px;border:1px solid #d7dee8;border-radius:7px;padding:0 16px;background:#fff;color:#637389}
.search-box:focus-within{border-color:#83b6ee;box-shadow:0 0 0 2px #e4f1ff}
.search-box input{border:0;box-shadow:none;padding:0;height:100%;background:transparent}
.search-box input:focus{outline:0;box-shadow:none}
.search-box .icon{width:23px;height:23px}
.list-controls select{height:52px}
.filter-button{height:52px;display:grid;place-items:center;padding:0}
.work-tabs{height:52px;display:flex;gap:28px;border-bottom:1px solid var(--line);overflow-x:auto}
.work-tabs button{position:relative;border:0;border-radius:0;background:transparent;padding:0 8px;font-size:16px;white-space:nowrap}
.work-tabs button.active{color:var(--blue);font-weight:700}
.work-tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--blue)}
.ticket-table{margin-top:10px;min-width:640px}
.ticket-table-head,.ticket-table-row{display:grid;grid-template-columns:minmax(215px,1.65fr) minmax(95px,.8fr) minmax(78px,.68fr) minmax(105px,.8fr) 86px;gap:14px;align-items:center}
.ticket-table-head{height:48px;padding:0 18px;background:#f4f6f9;color:#4b586a;font-size:13px;border-radius:7px 7px 0 0}
.ticket-table-row{width:100%;min-height:78px;padding:12px 18px;border:0;border-bottom:1px solid #e7ebf0;border-radius:0;background:#fff;text-align:left;color:#22344b}
.ticket-table-row:hover{background:#f7faff}
.ticket-table-row.selected{background:#eaf4ff}
.ticket-table-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ticket-subject{display:flex;flex-direction:column;gap:4px}
.ticket-subject strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#15263e}
.ticket-subject small{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border-radius:6px;padding:4px 9px;font-size:12px;font-style:normal;font-weight:600;white-space:nowrap;background:#eef1f5;color:#516174}
.status-pill.blue{background:#e1f0ff;color:#0766ca}
.status-pill.orange{background:#fff0df;color:#e16f13}
.status-pill.red{background:#fde6e6;color:#bd3838}
.status-pill.green{background:#dff5eb;color:#17805e}
.status-pill.purple{background:#efe7ff;color:#7040bd}
.status-pill.gray{background:#edf0f3;color:#5a6777}
.near{color:var(--warn);font-weight:600}
.detail-panel{grid-row:2;position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--line);box-shadow:-4px 0 14px #20344e0a;z-index:2}
.detail-scroll{flex:1;min-height:0;overflow:auto;padding:20px 22px 18px}
.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.detail-header h2{margin:0 0 7px;font-size:23px;color:#12233a}
.detail-header p{display:flex;align-items:center;gap:10px;color:#5e6c7f;margin:0}
.detail-close{border:0;background:transparent;padding:4px;color:#536275}
.detail-close .icon{width:22px;height:22px}
.next-banner{display:flex;align-items:center;gap:10px;margin:18px 0 16px;padding:14px 15px;border-radius:7px;background:var(--warn-soft);color:#e76c12}
.next-banner .icon{width:22px;height:22px}
.detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 14px}
.detail-meta>div{display:grid;grid-template-columns:82px minmax(0,1fr);gap:7px;padding:7px 10px;border-right:1px solid #edf0f4}
.detail-meta>div:nth-child(even){border-right:0}
.detail-meta dt{color:#687588}
.detail-meta dd{margin:0;overflow-wrap:anywhere;color:#25364c}
.compact-notice{margin:10px 0;font-size:12px;padding:10px 12px}
.detail-actions-secondary{display:flex;gap:7px;flex-wrap:wrap;padding:4px 0 13px}
.detail-actions-secondary button{padding:6px 9px;font-size:12px}
.detail-tabs{height:48px;display:flex;gap:27px;border-bottom:1px solid var(--line);position:sticky;top:-20px;background:#fff;z-index:2}
.detail-tabs button{position:relative;border:0;border-radius:0;background:#fff;padding:0 6px;font-size:15px;color:#4f5d70}
.detail-tabs button.active{color:var(--blue);font-weight:700}
.detail-tabs button.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--blue);border-radius:3px 3px 0 0}
.detail-tab-body{padding:18px 0 8px}
.detail-tab-body>h3{margin-top:18px}
.detail-timeline{list-style:none;margin:0;padding:0}
.detail-timeline li{position:relative;display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;padding:0 0 19px 20px;margin-left:6px;border-left:1px solid #d8e2ed}
.detail-timeline .timeline-dot{position:absolute;left:-6px;top:4px;width:11px;height:11px;border-radius:50%;background:#1779ea;border:2px solid #dcecff;box-shadow:0 0 0 2px #eef6ff}
.timeline-meta{display:flex;gap:7px;color:#526174;font-size:12px}
.timeline-meta time{color:#657387}
.detail-timeline p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.65;color:#2a3b51}
.detail-timeline p b{font-weight:600;color:#1e3048}
.followup-composer{margin-top:5px;padding-top:4px}
.followup-composer h3{margin:0 0 11px}
.followup-composer textarea{min-height:98px}
.followup-composer>input{margin-top:9px}
.composer-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.attachment-trigger{display:flex;align-items:center;gap:6px;border:0;padding:8px;color:#3d5269}
.attachment-trigger .icon{width:18px;height:18px}
.inline-date{display:flex;align-items:center;gap:6px;color:#536276}
.inline-date .icon{width:18px;height:18px}
.inline-date span{white-space:nowrap}
.inline-date input{width:166px;padding:8px}
.read-only-note{padding:14px;background:#f4f7fa;border-radius:7px;color:#657387;line-height:1.7}
.detail-footer{flex:none;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:9px;padding:14px 18px 16px;border-top:1px solid var(--line);background:#fff;box-shadow:0 -6px 14px #20344e0a}
.detail-footer button{min-height:46px;font-weight:600}
.detail-footer .review-button{border-color:#1670d2;color:#0764c8;background:#fff}
.detail-footer .wide{grid-column:1/-1}
.detail-empty{margin:auto;display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px;text-align:center;color:#7a8797}
.detail-empty strong{font-size:16px;color:#506176}
.current-result{white-space:pre-wrap;overflow-wrap:anywhere;background:#f6f8fa;padding:12px;border-radius:6px;line-height:1.7;font-size:13px}
.facts{margin:0;display:grid;grid-template-columns:132px 1fr;gap:10px 13px;font-size:13px}
.facts dt{color:var(--muted)}
.facts dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}
.attachments{display:flex;gap:9px;flex-wrap:wrap}
.attachments a{font-size:12px;border:1px solid var(--line);padding:8px 10px;border-radius:6px;text-decoration:none;overflow-wrap:anywhere;max-width:100%}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{position:relative;margin-left:5px;padding:0 0 20px 20px;border-left:1px solid #d8e1e8}
.timeline li:before{position:absolute;content:"";width:7px;height:7px;border-radius:50%;background:#8ca9bc;left:-4px;top:5px}
.timeline strong{font-size:13px}
.timeline small{display:block;margin:5px 0 8px;font-size:11px}
.timeline .event-data{white-space:pre-wrap;overflow-wrap:anywhere;color:#536a7b;font-size:12px;line-height:1.8}
.empty{padding:48px 20px;text-align:center;color:var(--muted);line-height:1.9}
.empty strong{display:block;font-size:16px;color:#35556c;margin-bottom:7px}
.table-empty{border-bottom:1px solid var(--line)}
input,select,textarea{border:1px solid #d2dae5;border-radius:6px;background:#fff;padding:10px 11px;color:#233847;width:100%}
textarea{min-height:95px;resize:vertical;line-height:1.6}
input:focus,select:focus,textarea:focus{border-color:#6ca8eb;box-shadow:0 0 0 2px #e1efff;outline:none}
.field{display:block;margin:0 0 16px}
.field>span{display:block;margin-bottom:7px;font-size:13px;font-weight:600}
.field small{display:block;margin-top:5px;line-height:1.5}
.required{color:#b33e42}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.form-section{border-top:1px solid var(--line);padding-top:18px;margin-top:4px}
.checkbox{display:flex;gap:10px;align-items:flex-start;line-height:1.6}
.checkbox input{width:auto;margin-top:5px}
.notice{padding:12px 14px;border-left:3px solid #db922e;background:#fff7ea;font-size:13px;line-height:1.7;margin:15px 0}
.login{max-width:930px;margin:7vh auto;background:#fff;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 20px 60px #1c3c5e18}
.login-intro{background:#123654;padding:48px 38px;color:#dfebf2}
.login-intro h1{font-size:32px;line-height:1.5;color:#fff;margin-top:32px}
.login-intro p{color:#b8d0df}
.brand-symbol{width:40px;height:40px;border:2px solid #95c4df;border-radius:9px;display:grid;place-items:center;color:#b7d6e8;font-weight:700}
.side-note{font-size:12px;line-height:1.9;color:#a9bfcc}
.login-box{padding:45px 38px}
.login-box .field{margin-bottom:20px}
.login-box button{width:100%}
.login-box .hint{background:#f5f8fa;padding:12px;font-size:12px;line-height:1.8;margin-top:22px}
dialog{border:0;padding:0;border-radius:12px;width:min(720px,calc(100vw - 30px));max-height:90vh;box-shadow:0 20px 70px #18384f42}
dialog::backdrop{background:#17344766}
dialog form{padding:24px}
dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
dialog h2{margin:0}
dialog footer{display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.icon-button{border:0;font-size:24px;padding:2px 8px}
.error,#modal-error{color:var(--red);line-height:1.6;font-size:13px}
.report{background:#fff;border:1px solid var(--line);border-radius:9px;padding:24px;overflow:auto}
.report table{width:100%;border-collapse:collapse;font-size:13px}
.report th{text-align:left;color:var(--muted);background:#f6f8fa;font-weight:400}
.report th,.report td{padding:13px 10px;border-bottom:1px solid var(--line)}
.report .summary-line{padding:18px 0;line-height:1.8}
.report ul,.report ol{line-height:2}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(240px,1fr));gap:14px}
.settings-grid button{min-height:112px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:8px;padding:20px;text-align:left;background:#fff}
.settings-grid button strong{font-size:16px;color:#1a2c44}
.settings-grid button span{color:var(--muted);line-height:1.6}
.import-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
.import-summary>div{display:flex;flex-direction:column;gap:6px;padding:15px 17px;border:1px solid var(--line);border-radius:8px;background:#f7f9fc}
.import-summary span{font-size:13px;color:var(--muted)}
.import-summary strong{font-size:27px;color:var(--blue)}
.import-summary .warning strong{color:var(--warn)}
.import-notice{margin-bottom:14px;padding:13px 15px;border-left:3px solid var(--warn);background:#fff8ed;color:#4f5c6e;line-height:1.7}
.import-controls{grid-template-columns:minmax(260px,1fr) 180px;margin-bottom:10px}
.import-table{min-width:660px}
.import-table-head,.import-table-row{display:grid;grid-template-columns:minmax(210px,1.6fr) minmax(120px,1fr) 95px 88px 95px;gap:12px;align-items:center}
.import-table-head{height:46px;padding:0 16px;background:#f4f6f9;color:#4b586a;font-size:13px;border-radius:7px 7px 0 0}
.import-table-row{width:100%;min-height:72px;padding:11px 16px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;text-align:left}
.import-table-row:hover{background:#f7faff}
.import-table-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.import-table-row>span:first-child{display:flex;flex-direction:column;gap:4px}
.import-table-row strong,.import-table-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.import-review-block{margin:18px 0 14px;padding:13px 15px;border-radius:7px;background:#fff3e6;color:#784418}
.import-review-block h3{margin:0 0 8px}
.import-review-block ul{margin:0;padding-left:20px;line-height:1.8}
.ledger-open{display:inline-block;padding:10px 16px;border-radius:7px;background:var(--blue);color:#fff;text-decoration:none;font-weight:600}
.account-panel{max-width:680px;margin:32px auto;padding:28px}
.table-scroll{overflow:auto;margin:16px 0 26px}
.alert-list{display:grid;margin-top:18px;border-top:1px solid var(--line)}
.alert-row{display:grid;gap:9px;text-align:left;border:0;border-radius:0;border-bottom:1px solid var(--line);padding:17px 10px;background:transparent}
.alert-row .tag{justify-self:start;white-space:normal}
.alert-row strong{font-size:15px}
.alert-row>span:not(.tag){font-size:12px;color:var(--muted)}
.tag{display:inline-block;border-radius:4px;background:#e8f0f6;color:#39627d;padding:3px 7px;font-size:11px;white-space:nowrap}
.tag.orange{background:#fff0db;color:#985310}
.tag.red{background:#fbe5e6;color:#a72e36}
.tag.green{background:#e0f2e9;color:#28754d}
.tag.gray{background:#edf0f2;color:#647480}
#backup-result{margin-top:12px;overflow-wrap:anywhere;color:var(--blue)}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#203b57;color:#fff;border-radius:7px;padding:12px 22px;max-width:90vw;display:none;z-index:20}
.loading{padding:40px;color:var(--muted)}
@media(max-width:1280px){
    .shell{grid-template-columns:215px minmax(480px,1fr) minmax(420px,470px)}
    .header-brand strong{font-size:21px}
    .workspace{padding:18px 16px 24px}
    .detail-scroll{padding:18px}
    .ticket-table-head,.ticket-table-row{grid-template-columns:minmax(190px,1.5fr) 88px 74px 100px 80px;gap:9px}
}
@media(max-width:1050px){
    body{overflow:auto}
    .shell{height:auto;min-height:calc(100vh - 28px);grid-template-columns:205px minmax(0,1fr);grid-template-rows:68px minmax(650px,auto)}
    .app-header{position:sticky;top:0}
    .sidebar{grid-column:1;grid-row:2;position:sticky;top:68px;height:calc(100vh - 68px)}
    .workspace{grid-column:2;grid-row:2;overflow:visible}
    .detail-panel{position:fixed;right:0;top:96px;bottom:0;width:min(540px,calc(100vw - 205px));z-index:8;box-shadow:-15px 0 40px #19334e2b}
    .detail-empty{display:none}
    .ledger-button span{display:none}
}
@media(max-width:700px){
    .demo-banner{height:auto}
    .shell{display:block;min-height:100vh}
    .app-header{height:auto;min-height:70px;padding:10px 13px;flex-wrap:wrap;position:sticky;top:0}
    .header-brand{gap:8px}.header-brand strong{font-size:18px}.header-brand span{font-size:10px}
    .header-actions{gap:6px}.ledger-button{display:none}.create-button{padding:0 10px}.identity-menu>span:not(.avatar){display:none}
    .sidebar{position:static;height:auto;padding:8px;display:block;overflow:auto;border-bottom:1px solid var(--line)}
    .nav-primary,.nav-types,.nav-footer{display:flex;gap:5px;overflow-x:auto;border:0;margin:0;padding:0}
    .nav-divider{display:none}.nav-item{min-height:42px;white-space:nowrap;padding:8px 11px;font-size:13px}.nav-item .icon{width:18px;height:18px}.nav-item b{display:none}
    .workspace{padding:16px 10px}.page-heading h1{font-size:24px}.page-heading p{font-size:13px}
    .summary-cards{gap:7px}.summary-card{height:88px;padding:12px}.summary-card span{font-size:13px}.summary-card strong{font-size:30px}
    .list-controls{grid-template-columns:1fr 48px}.list-controls select{grid-column:1/-1;grid-row:2}.filter-button{grid-column:2;grid-row:1}
    .work-tabs{gap:12px}.ticket-table{min-width:620px}.workspace{overflow-x:auto}
    .detail-panel{position:fixed;inset:0;width:100%;z-index:30}.detail-scroll{padding:16px}.detail-footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}
    .form-grid,.settings-grid{grid-template-columns:1fr}.import-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.login{margin:20px 12px;display:block}.login-intro{padding:24px}.login-intro h1{font-size:25px;margin:20px 0 10px}.login-box{padding:25px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
