:root{color:#171f32;font-synthesis:none;--navy:#00338d;--blue:#00338d;--blue-hover:#005eb8;--muted:#64748b;--line:#dce5ef;--blue-line:#b9d9f4;--selected:#eaf4ff;--radius:12px;--shadow:0 2px 3px #0f234109, 0 6px 16px #0f234106;--shadow-hover:0 5px 9px #00338d0b, 0 14px 30px #00338d12;--ease:cubic-bezier(.22, 1, .36, 1);background:#f5f7fa;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent;transition:background-color .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease)}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}svg{vertical-align:middle;flex-shrink:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #7aaee5}button:not(:disabled):active,a:active{transform:translateY(1px)}h1,h2,h3,p{margin:0}::selection{color:#00338d;background:#cfe3fb}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;gap:24px;min-height:80px;padding:16px 32px;display:flex}.brand{color:#172943;letter-spacing:.5px;align-items:center;gap:14px;font-size:26px;font-weight:750;display:flex}.brand svg{width:32px;height:36px;color:var(--blue)}.header-actions{align-items:center;gap:24px;display:flex}.portal-link{color:#475569;border-radius:8px;align-items:center;gap:10px;padding:9px 6px;font-size:15px;display:flex}.portal-link:hover{color:var(--blue);background:#f3f7fc}.button{border-radius:var(--radius);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:10px 19px;font-size:15px;font-weight:600;display:inline-flex}.primary{background:var(--blue);color:#fff;box-shadow:0 2px 5px #00338d18}.primary:hover:not(:disabled){background:var(--blue-hover);transform:translateY(-2px);box-shadow:0 5px 14px #00338d26}.secondary,.manage-button{border-color:var(--line);box-shadow:var(--shadow);background:#fff}.manage-button{color:var(--blue);border-color:#bdcde5}.secondary:hover:not(:disabled),.manage-button:hover:not(:disabled){box-shadow:var(--shadow-hover);background:#f6faff;border-color:#9abce3;transform:translateY(-1px)}.app-shell{grid-template-columns:266px minmax(0,1fr);min-height:calc(100dvh - 80px);display:grid}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;padding:34px 20px 28px;display:flex}.sidebar h2{color:#526175;margin:0 10px 22px;font-size:15px;font-weight:650}.sidebar nav{gap:10px;display:grid}.board-link{text-align:left;border-radius:var(--radius);color:#475569;background:0 0;border:1px solid #0000;align-items:center;gap:13px;width:100%;min-height:52px;padding:14px;font-size:15px;display:flex}.board-link span{overflow-wrap:anywhere;flex:1}.board-link small{font-variant-numeric:tabular-nums;font-size:14px}.board-link.active{background:var(--selected);color:var(--blue);border-color:#cbdffa;font-weight:650;box-shadow:0 2px 4px #00338d06}.board-link:hover{background:#f3f7fc;transform:translate(2px)}.board-link.active:hover{background:#dfedff}.board-create{color:#526781;background:#fff;border:1px dashed #c6d5e5;margin-top:26px}.board-create:hover{color:var(--blue);background:#f5faff;border-color:#8db4e0}.sidebar-note{color:var(--muted);align-items:center;gap:9px;margin-top:auto;padding:90px 7px 0;font-size:13px;display:flex}.main-content{min-width:0;animation:surface-enter .42s var(--ease) both;padding:30px 32px 60px}.page-heading{min-height:128px;box-shadow:var(--shadow);background:linear-gradient(110deg,#fff 0%,#f9fbff 53%,#e7f1fc 100%);border:1px solid #e4ecf5;border-radius:20px;justify-content:space-between;align-items:center;gap:24px;padding:26px 30px;display:flex}.page-heading h1{letter-spacing:-.5px;overflow-wrap:anywhere;font-size:32px;font-weight:730;line-height:1.35}.page-heading p{color:var(--muted);margin-top:9px;font-size:16px;line-height:1.5}.upload-trigger{min-height:50px;padding-inline:23px}.toolbar{justify-content:space-between;align-items:center;gap:18px;margin-top:32px;display:flex}.search{border-radius:var(--radius);color:#7a8ba0;background:#fff;border:1px solid #d1dbe7;align-items:center;gap:12px;width:340px;height:46px;padding:0 14px;transition:box-shadow .18s,border-color .18s;display:flex;box-shadow:0 1px 2px #152b4510}.search input{color:#26354b;background:0 0;border:0;outline:none;width:100%;min-width:0;font-size:15px}.search input::placeholder{color:#8592a4}.search input:focus-visible{outline:0}.search:focus-within{border-color:#7daee0;box-shadow:0 0 0 4px #2563eb0d}.toolbar select{border-radius:var(--radius);color:#526175;background:#fff;border:1px solid #d1dbe7;min-width:210px;height:46px;padding:0 16px;font-size:15px;box-shadow:0 1px 2px #152b4510}.library-table{margin-top:22px}.table-head,.plan-row{grid-template-columns:minmax(0,1fr) 108px 48px 190px;align-items:center;gap:18px;display:grid}.table-head{color:#64748b;padding:15px 22px 17px;font-size:14px;font-weight:500}.plan-row{min-height:128px;box-shadow:var(--shadow);transition:transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);background:#fff;border:1px solid #e0e8f1;border-radius:16px;margin-bottom:18px;padding:23px 22px}.plan-row:hover,.plan-row:focus-within{box-shadow:var(--shadow-hover);border-color:#c0d7f0;transform:translateY(-2px)}.plan-title-cell{align-items:center;gap:18px;min-width:0;display:flex}.document-icon{color:var(--blue);background:#edf5ff;border:1px solid #cfe2fb;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:66px;display:flex}.document-icon svg{width:32px;height:36px}.plan-title-cell h2{color:#1b2b42;overflow-wrap:anywhere;font-size:16px;font-weight:650;line-height:1.7}.plan-title-cell h2 button{text-align:left;line-height:inherit;font-weight:inherit;background:0 0;border:0;border-radius:4px;padding:0}.plan-title-cell h2 button:hover{color:var(--blue)}.plan-title-cell h2 span{white-space:nowrap;font-weight:450}.plan-title-cell p{color:var(--muted);margin-top:4px;font-size:14px}.date-cell,.count-cell{color:#5b6d83;font-variant-numeric:tabular-nums;font-size:14px}.row-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.row-actions>a{color:var(--blue);white-space:nowrap;background:#eef5ff;border:1px solid #cfe1fa;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:550}.row-actions>a:hover{background:#dfedff;border-color:#a9cbee}.icon-button{color:#60738c;background:0 0;border:0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:6px;display:inline-flex}.icon-button:hover{color:var(--blue);background:#eaf1fb}.list-count{color:var(--muted);margin-top:26px;font-size:14px}.empty-state{text-align:center;min-height:240px;color:var(--muted);border:1px dashed var(--line);background:#fff;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:52px 20px;display:flex}.empty-state h2{color:#243c58;font-size:19px;font-weight:550}.empty-state p{font-size:14px}.admin-links{gap:8px;margin-top:26px;display:grid}.admin-links button{text-align:left;color:#64748b;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;padding:11px 14px;font-size:14px;display:flex}.admin-links button:hover,.admin-links .selected{color:var(--blue);background:#f1f6fc}.toast{z-index:100;color:#fff;box-shadow:var(--shadow-hover);background:#203a5b;border-radius:14px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:14px 24px;font-size:14px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.modal{color:inherit;overscroll-behavior:contain;background:#fff;border:1px solid #e2e9f2;border-radius:24px;width:720px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);padding:0;box-shadow:0 24px 80px #152b4530}.modal[open]{animation:surface-enter .24s var(--ease) both}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#20324f55}.modal-shell{padding:28px 32px}.modal-head{justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px;display:flex}.modal-head h2{color:#172943;font-size:25px;font-weight:680}.compact-modal{width:480px}.field{color:#526175;flex-direction:column;gap:8px;margin-bottom:18px;font-size:14px;font-weight:550;line-height:1.4;display:flex}.field input,.field select{border-radius:var(--radius);color:#26354b;background:#fff;border:1px solid #cedbea;width:100%;min-width:0;height:46px;padding:10px 13px;font-size:16px;box-shadow:0 1px 2px #152b4505}.field input:focus,.field select:focus{border-color:#7daee0;outline:none;box-shadow:0 0 0 4px #2563eb0d}.form-row{grid-template-columns:1fr 1fr;gap:22px;display:grid}.form-row .field{margin-bottom:8px}.name-preview{color:var(--muted);overflow-wrap:anywhere;margin:5px 0 20px;font-size:13px;line-height:1.6}.modal-actions{border-top:1px solid #e7edf5;justify-content:flex-end;align-items:center;gap:12px;margin-top:22px;padding-top:20px;display:flex}.modal-actions>span{color:var(--muted);margin-right:auto;font-size:13px}.modal fieldset{border:0;min-width:0;margin:0;padding:0}.upload-tabs{border:1px solid var(--line);border-radius:var(--radius);background:#f5f8fc;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:18px;padding:4px;display:grid}.upload-tabs button{color:#64748b;background:0 0;border:1px solid #0000;border-radius:9px;padding:10px 8px;font-size:14px}.upload-tabs button:hover{color:var(--blue);background:#eef4fc}.upload-tabs button.selected{color:var(--blue);background:#fff;border-color:#b9d1f2;font-weight:600;box-shadow:0 2px 4px #00338d0d}.file-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.upload-zone{width:100%;min-height:164px;color:var(--blue);background:#f2f7ff;border:1px dashed #99bfe8;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:20px;display:flex}.upload-zone>svg{background:#dfeaff;border-radius:12px;width:46px;height:46px;padding:10px}.upload-zone:hover{background:#eaf3ff;border-color:#5e9cd8;box-shadow:0 0 0 4px #2563eb05}.upload-zone strong{font-size:17px;font-weight:600}.upload-zone span{color:var(--muted);font-size:14px}.attach-button{min-height:38px;color:var(--blue);border-color:#c4d7ef;margin-top:16px;padding:8px 12px;font-size:14px}.help{color:var(--muted);overflow-wrap:anywhere;margin:10px 0 12px;font-size:13px;line-height:1.8}.file-paths{max-height:160px;margin-top:12px;overflow:auto}.upload-file{border:1px solid var(--line);color:#647184;background:#fbfcfe;border-radius:10px;align-items:center;gap:12px;margin-bottom:8px;padding:10px 12px;font-size:13px;display:flex}.upload-file input{color:#213248;background:0 0;border:0;flex:1;min-width:0;padding:4px 0;font-size:14px}.upload-file strong{overflow-wrap:anywhere;flex:1;font-weight:500}.upload-file>span{white-space:nowrap;font-size:12px}.entry-field{margin:14px 0 0}.entry-field input{font-size:13px}.error{color:#a33732;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff3f2;border-radius:12px;margin:18px 0;padding:12px 15px;font-size:14px;line-height:1.7}.upload-progress{color:var(--blue);gap:8px;margin-top:14px;font-size:13px;display:grid}progress{width:100%;height:7px;accent-color:var(--blue)}.dialog-intro{color:var(--muted);margin:0 0 24px;font-size:15px;line-height:1.8}.detail-name{color:#172943;font-size:19px;line-height:1.6}.detail-links{gap:12px;margin:20px 0;display:flex}.attachment-list{border:1px solid #e7edf5;border-radius:12px;max-height:320px;overflow:auto}.attachment-row{border-bottom:1px solid #e8edf3;align-items:center;gap:12px;padding:13px 14px;font-size:14px;display:flex}.attachment-row:last-child{border-bottom:0}.attachment-row:hover{background:#f7faff}.attachment-row>span{overflow-wrap:anywhere;flex:1;min-width:0}.attachment-row small{white-space:nowrap;color:var(--muted);font-size:12px}.attachment-row a{color:var(--blue);white-space:nowrap;border-radius:6px;padding:6px}.attachment-row a:hover{background:#eaf3ff}.archive-confirm{background:#fff8f0;border-radius:12px;margin-top:20px;padding:16px;font-size:14px;line-height:1.7}.archive-confirm p{margin-bottom:12px}.archive-confirm .button{margin-right:8px}.danger{color:#a33732;background:#fff;border-color:#deb3ad}@keyframes surface-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width>=1500px){.app-shell{grid-template-columns:290px minmax(0,1fr)}.main-content{padding:30px 32px 60px}.table-head,.plan-row{grid-template-columns:minmax(0,1fr) 132px 65px 206px;gap:22px}.plan-row{min-height:136px}.plan-title-cell h2{font-size:17px}}@media (width<=1199px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding:30px 15px}.main-content{padding:26px 24px}.page-heading{padding:24px}.table-head,.plan-row{grid-template-columns:minmax(0,1fr) 98px 32px 176px;gap:12px}.plan-row{padding:20px 16px}.table-head{padding-inline:16px}.document-icon{border-radius:12px;width:48px;height:56px}.plan-title-cell{gap:12px}.row-actions{gap:3px}.date-cell{font-size:13px}}@media (width<=1000px) and (width>=761px){.table-head,.plan-row{grid-template-columns:minmax(0,1fr) 176px}.table-head span:nth-child(2),.table-head span:nth-child(3),.date-cell,.count-cell{display:none}.toolbar select{min-width:190px}.search{width:300px}}@media (width<=760px){.topbar{gap:10px;min-height:68px;padding:12px 18px}.brand{letter-spacing:0;gap:9px;font-size:21px}.brand svg{width:27px;height:30px}.header-actions{gap:8px}.portal-link{gap:0;padding:8px;font-size:0}.header-actions .button{gap:6px;min-height:38px;padding:8px 11px;font-size:13px}.app-shell{min-height:calc(100dvh - 68px);display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:14px 18px;display:block}.sidebar h2,.sidebar-note{display:none}.sidebar nav{align-items:center;gap:8px;padding:2px 1px;display:flex;overflow:auto}.board-link{flex-shrink:0;gap:8px;width:auto;min-height:40px;padding:10px 12px;font-size:14px}.board-link small{font-size:13px}.board-link svg{width:18px}.board-create{min-height:36px;margin:12px 0 0;padding:7px 12px;font-size:13px}.admin-links{gap:6px;margin:0 0 0 10px;display:inline-flex}.admin-links button{gap:6px;padding:8px;font-size:12px}.main-content{padding:20px 16px 40px}.page-heading{border-radius:18px;gap:10px;min-height:112px;padding:20px 18px}.page-heading h1{font-size:26px}.page-heading p{margin-top:5px;font-size:13px}.upload-trigger{gap:6px;min-height:42px;padding:9px 12px;font-size:13px}.upload-trigger svg{width:17px}.toolbar{gap:10px;margin-top:22px}.search{flex:1;gap:8px;width:auto;min-width:0;height:44px;padding:0 10px}.search input{font-size:14px}.toolbar select{width:148px;min-width:0;height:44px;padding:0 8px;font-size:13px}.table-head{display:none}.library-table{margin-top:20px}.plan-row{flex-wrap:wrap;gap:15px;min-height:0;margin-bottom:14px;padding:20px 16px;display:flex}.plan-title-cell{gap:12px;width:100%}.plan-title-cell h2{font-size:16px;line-height:1.65}.plan-title-cell h2 span{font-size:14px}.plan-title-cell p{font-size:13px}.document-icon{width:46px;height:55px}.document-icon svg{width:27px;height:32px}.date-cell{display:none}.count-cell{color:var(--muted);font-size:12px}.count-cell:after{content:" 个文件"}.row-actions{gap:6px;width:190px;margin-left:auto}.row-actions>a{padding:9px 12px;font-size:14px}.list-count{font-size:13px}.modal{border-radius:20px;max-width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.modal-shell{padding:22px 20px}.modal-head h2{font-size:22px}.form-row{gap:14px}.field{font-size:14px}.field input,.field select{font-size:16px}.modal-actions{flex-wrap:wrap;gap:8px}.modal-actions>span{width:100%;margin-bottom:4px}.modal-actions .button{padding:9px 15px;font-size:14px}.upload-tabs button{padding:10px 4px;font-size:12px}.upload-zone{min-height:150px}.upload-zone span{text-align:center;font-size:12px;line-height:1.6}.file-paths{max-height:140px}.toast{width:max-content;font-size:13px;bottom:18px}.attachment-row{gap:8px;padding-inline:10px;font-size:12px}}@media (width<=380px){.page-heading{flex-wrap:wrap}.page-heading .upload-trigger{margin-top:4px}.form-row{grid-template-columns:1fr;gap:8px}.header-actions .manage-button svg{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
