:root{--accent:#5046e5;--accent-light:#eeedff;--ink:#172033;--muted:#78839b;--line:#e3e8f1;--rail:#f5f6fa;--radius:10px}*{box-sizing:border-box}body{color:var(--ink);background:#fff;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{color:inherit;background:0 0;border:0}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;outline:none;padding:10px 12px;font-size:14px}textarea{resize:vertical;min-height:120px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #5046e512}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}select[multiple]{min-height:105px}h1,h2,h3,p{margin:0}h1{letter-spacing:-1px;font-size:38px;font-weight:700;line-height:1.4}h2{font-size:18px;line-height:1.5}h3{font-size:17px}small{color:var(--muted);font-size:12px}.muted{color:var(--muted)}.primary,.secondary{white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 17px;font-size:14px;font-weight:600;display:inline-flex}.primary{background:var(--accent);color:#fff;border:1px solid var(--accent)}.primary:hover{background:#4239cc}.secondary{border:1px solid var(--line);background:#fff}.secondary:hover{background:var(--rail)}.text-button{color:var(--accent);white-space:nowrap;align-items:center;gap:7px;padding:4px 0;font-size:13px;font-weight:500;display:inline-flex}.icon-button{border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;padding:7px;display:inline-flex}.icon-button:hover{background:var(--rail)}.danger{color:#c54848}.wide{width:100%}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading{height:100vh;color:var(--muted);justify-content:center;align-items:center;gap:12px;display:flex}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--rail);border-right:1px solid var(--line);z-index:30;flex-direction:column;width:284px;padding:24px 14px;display:flex;position:fixed;inset:0 auto 0 0}.brand{letter-spacing:-.6px;white-space:nowrap;align-items:center;gap:13px;padding:0 10px 32px;font-size:24px;font-weight:700;display:flex}.brand-icon{background:var(--accent);color:#fff;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;display:flex}.sidebar nav{flex-direction:column;gap:9px;display:flex;overflow:auto}.nav-item{text-align:left;color:#35405a;border-radius:8px;align-items:center;gap:16px;width:100%;min-height:52px;padding:12px 19px;font-size:17px;display:flex}.nav-item:hover{background:#ebedf5}.nav-item.selected{color:var(--accent);background:#e8e7ff;font-weight:600}.sub-nav{padding-left:28px;font-size:13px}.sidebar-bottom{margin-top:auto;padding-top:25px}.private-user{border-top:1px solid var(--line);align-items:center;gap:12px;padding:20px 15px 14px;font-size:14px;display:flex}.private-user>span{background:#eaedf5;border:1px solid #c9cedb;border-radius:50%;padding:4px;display:flex}.private-user>div{flex:1}.private-user small{text-overflow:ellipsis;max-width:100px;font-size:11px;display:block;overflow:hidden}.main{width:calc(100% - 284px);min-height:100vh;margin-left:284px;padding:15px 27px 16px}.toolbar{align-items:center;gap:14px;margin-bottom:27px;display:flex}.search-box{color:#929bb0;border:1px solid #d9dfeb;border-radius:8px;flex:1;align-items:center;gap:11px;height:52px;padding:0 14px;display:flex}.search-box input{box-shadow:none;border:0;padding:11px 0;font-size:16px}.search-box input::placeholder{color:#929bb0}.new-button{height:52px;padding:10px 20px}.page-heading{margin-bottom:24px}.page-heading p{color:#59657e;margin-top:6px;font-size:18px}.stats{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:25px;display:grid}.stat{border:1px solid var(--line);border-radius:var(--radius);align-items:flex-start;gap:21px;min-height:125px;padding:23px 24px;display:flex}.stat>svg{color:#4f5a74;flex-shrink:0;margin-top:2px}.stat span{color:#59657e;font-size:16px;display:block}.stat strong{margin-top:4px;font-size:36px;font-weight:650;line-height:1.4;display:block}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden}.panel-head{justify-content:space-between;align-items:center;gap:15px;padding:20px 21px 0;display:flex}.dashboard-grid{grid-template-columns:minmax(0,1.85fr) minmax(0,1fr);gap:14px;margin-bottom:25px;display:grid}.recent,.due{min-height:370px}.empty{text-align:center;color:#8490a8;flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:55px 22px;display:flex}.empty h3{color:var(--ink);margin-top:17px;margin-bottom:9px}.empty p{max-width:350px;font-size:14px}.empty button{margin-top:25px}.due .empty{padding-top:66px}.due .empty h3{color:#46536c;font-size:15px}.due .empty p{max-width:240px;font-size:13px}.favorites{min-height:222px}.favorites .empty{min-height:182px;padding:20px 22px}.favorites .empty svg{width:35px;height:35px;margin-bottom:8px}.favorites .empty button{color:var(--accent);background:#fff;border-color:#a7a0ff;min-height:36px;margin-top:15px;padding:6px 19px}.favorites .empty button:hover{background:var(--accent-light)}.favorite-links{flex-wrap:wrap;gap:14px;padding:25px;display:flex}.favorite-links button{border:1px solid var(--line);border-radius:8px;align-items:center;gap:12px;padding:11px 16px;display:flex}.favorite-links button:hover{border-color:var(--accent);color:var(--accent)}footer{color:#929bb0;align-items:center;gap:9px;margin-top:24px;font-size:11px;display:flex}footer svg{flex-shrink:0}.footer-right{white-space:nowrap;margin-left:auto}.record-list{padding:6px 20px 14px}.record-row{text-align:left;border-bottom:1px solid #edf0f6;align-items:center;gap:14px;width:100%;padding:17px 1px;display:flex}.record-row:last-child{border:0}.record-row:hover .record-name strong{color:var(--accent)}.record-icon{color:#6960c3;background:#f0efff;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.record-icon.server{color:#368276;background:#edf5f4}.record-icon.software{color:#b68245;background:#fff4e7}.record-icon.note{color:#5d7798;background:#eff3fa}.record-name{flex:1;min-width:0}.record-name strong{overflow-wrap:anywhere;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.record-name>span{color:var(--muted);margin-top:3px;font-size:12px;display:block}.record-meta{color:var(--muted);text-align:right;white-space:nowrap;font-size:12px}.record-meta small{justify-content:flex-end;gap:5px;display:flex}.row-arrow{color:#a2aabd}.compact .record-row{padding:12px 0}.compact .record-meta{font-size:11px}.compact .row-arrow{display:none}.due .record-row{gap:8px}.due .record-meta{display:none}.records-panel{min-height:450px}.list-tools{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:10px;padding:20px 23px;font-size:13px;display:flex}.list-tools>div{gap:8px;display:flex}.list-tools select{width:auto;max-width:150px;padding:6px 10px;font-size:12px}.manage{padding:25px}.manage h2{margin-bottom:13px}.manage p{font-size:13px}.inline-form{gap:10px;margin:20px 0;display:flex}.category-list>div{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:15px 0;display:flex}.category-list .muted{margin-left:auto;font-size:12px}.category-list .text-button{color:var(--ink);font-size:14px}.settings-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.section-icon{color:var(--accent);margin-bottom:12px}.manage form{margin-top:23px}.manage label,.modal label,.login-card label{flex-direction:column;gap:7px;margin-bottom:17px;font-size:13px;font-weight:500;display:flex}.info-box{background:var(--rail);color:#69758d;border-radius:8px;margin-top:22px;padding:14px 16px;font-size:12px;line-height:1.8}.backup-list{margin:22px 0}.backup-list a{border-bottom:1px solid var(--line);overflow-wrap:anywhere;align-items:center;gap:12px;padding:13px 0;font-size:11px;display:flex}.backup-list small{display:block}.success{color:#258269!important;margin:14px 0!important}.error{font-size:13px;color:#bb4141!important;margin:14px 0!important}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#10192b65;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:640px;max-width:100%;max-height:90vh;padding:26px;overflow:auto;box-shadow:0 24px 80px #0b122c30}.modal-head{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:0 17px;display:grid}.modal .check-label{flex-direction:row;align-items:center;padding-top:20px;font-weight:400}.form-actions{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:12px;margin-top:24px;padding-top:20px;display:flex}.inline-note{color:var(--muted);align-items:center;gap:8px;margin:3px 0 17px;font-size:12px;display:flex}.inline-note svg{flex-shrink:0}.detail>h2{overflow-wrap:anywhere;align-items:center;gap:10px;font-size:25px;display:flex}.detail>p{margin-top:6px;font-size:12px}.tags{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.tags span{background:var(--accent-light);color:var(--accent);border-radius:5px;padding:3px 9px;font-size:11px}dl{margin:23px 0}dl>div{border-bottom:1px solid #edf0f6;grid-template-columns:140px 1fr;gap:12px;padding:10px 0;font-size:13px;display:grid}dt{color:var(--muted)}dd{overflow-wrap:anywhere;margin:0}dd a{word-break:break-all;align-items:center;gap:7px;display:inline-flex}.note-content{white-space:pre-wrap;overflow-wrap:anywhere;background:#f7f8fb;border-radius:8px;padding:19px;font-size:14px;line-height:1.9}.detail-section{margin-top:25px}.detail-section h3{margin-bottom:12px;font-size:15px}.linked-record{text-align:left;width:100%;color:var(--accent);align-items:center;gap:11px;padding:11px 0;display:flex}.linked-record svg:last-child{margin-left:auto}.attachment{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:14px 0;display:flex}.attachment>div{flex:1;min-width:0}.attachment strong{overflow-wrap:anywhere;font-size:13px;display:block}.attachment small{display:block}.upload-zone{cursor:pointer;color:var(--accent);text-align:center;background:#fafaff;border:1px dashed #b4badd;border-radius:8px;align-items:center;margin-top:17px;padding:25px}.upload-zone input{opacity:0;width:1px;height:1px;position:absolute}.upload-zone:focus-within{outline:2px solid var(--accent)}.upload-zone.disabled{opacity:.5;cursor:not-allowed}.upload-progress{background:var(--rail);border-radius:8px;padding:15px;font-size:12px}.upload-progress>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.upload-progress progress{width:100%;height:7px;accent-color:var(--accent)}.toast{z-index:100;color:#fff;background:#222b42;border-radius:9px;max-width:90vw;padding:13px 22px;font-size:13px;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 6px 25px #17203325}.confirm-layer{z-index:80}.confirm{max-width:420px}.confirm p{margin-top:15px;font-size:14px}.login-wrap{background:var(--rail);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:28px;display:flex}.login-card{border:1px solid var(--line);background:#fff;border-radius:16px;width:440px;max-width:100%;padding:40px;box-shadow:0 12px 50px #17203305}.login-brand{margin-bottom:33px;padding:0;font-size:23px}.login-card h1{letter-spacing:-.5px;font-size:25px}.login-card>p{margin-top:8px;font-size:14px}.login-card form{margin-top:28px}.login-foot{color:var(--muted);justify-content:center;align-items:center;gap:7px;display:flex;margin-top:23px!important;font-size:12px!important}.setup-note{color:var(--muted);text-align:center;max-width:400px;margin-top:20px;font-size:11px}.mobile-toggle,.mobile-close{display:none}@media (min-width:1600px){.main{padding-left:42px;padding-right:42px}.recent,.due{min-height:360px}.recent .empty{min-height:300px}}@media (max-width:1150px){.sidebar{width:215px}.brand{gap:9px;font-size:19px}.main{width:calc(100% - 215px);margin-left:215px;padding:20px}.stat{gap:12px;padding:18px 15px}.stat>svg{width:26px}.dashboard-grid{grid-template-columns:1.5fr 1fr}.footer-right{display:none}.settings-grid{grid-template-columns:1fr}.compact .record-meta{display:none}}@media (max-width:760px){.sidebar{width:254px;transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-backdrop{z-index:25;background:#10192b55;position:fixed;inset:0}.mobile-toggle,.mobile-close{display:inline-flex}.mobile-close{margin-left:auto}.main{width:100%;margin:0;padding:18px 16px}.toolbar{gap:9px;margin-bottom:24px}.search-box{gap:7px;min-width:0;height:43px;padding:0 9px}.search-box input{min-width:0;font-size:12px}.search-box>svg{width:17px}.new-button{min-width:42px;height:43px;padding:10px}.new-button span{display:none}.toolbar>.icon-button{padding:4px}h1{font-size:28px}.page-heading p{font-size:14px}.stats{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:17px}.stat{gap:13px;min-height:96px;padding:17px}.stat span{font-size:12px}.stat strong{font-size:26px}.dashboard-grid{grid-template-columns:1fr;gap:17px;margin-bottom:17px}.panel-head{padding:17px 17px 0}.panel-head h2{font-size:16px}.recent,.due{min-height:270px}.due .empty{min-height:215px;padding-top:35px}.empty{min-height:240px;padding:35px 15px}.empty p{font-size:12px}.empty h3{font-size:16px}.favorites .empty{min-height:155px}.footer-right{display:none}footer{align-items:flex-start;font-size:10px;line-height:1.8}.record-list{padding:8px 14px}.record-row{gap:10px}.record-meta{font-size:10px}.record-name strong{font-size:13px}.record-name>span{font-size:11px}.record-icon{width:36px;height:36px}.row-arrow{display:none}.list-tools{flex-direction:column;align-items:flex-start;padding:16px}.list-tools>div{width:100%}.list-tools select{flex:1;max-width:100%}.manage{padding:20px}.inline-form{flex-wrap:wrap}.inline-form button{width:100%}.modal-backdrop{padding:10px}.modal{border-radius:12px;max-height:94vh;padding:22px 18px}.form-grid{grid-template-columns:1fr}.modal .check-label{padding-top:0}dl>div{grid-template-columns:95px 1fr}.form-actions{flex-wrap:wrap}.form-actions button{padding:9px 13px;font-size:12px}.login-card{padding:28px 23px}.login-card h1{font-size:23px}.toast{width:max-content;max-width:calc(100vw - 30px);font-size:12px;bottom:16px}.settings-grid{gap:17px}.category-list>div{gap:8px}.category-list .muted{font-size:10px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (max-width:1150px){.brand-icon{width:44px;height:44px}.nav-item{min-height:46px;font-size:15px}.brand{padding-bottom:28px}.recent,.due{min-height:322px}}.floating-upload{border:1px solid var(--line);z-index:50;background:#fff;border-radius:9px;gap:15px;max-width:90vw;padding:15px;font-size:12px;display:flex;position:fixed;bottom:25px;right:25px;box-shadow:0 8px 25px #17203320}@media (max-width:760px){.sidebar{visibility:hidden}.sidebar.open{visibility:visible}}@media (min-width:1151px){.panel-head h2,.empty h3{font-size:20px}.empty p{font-size:16px}.empty>svg{width:64px;height:64px}.due .empty h3{font-size:17px}.due .empty p{font-size:15px}.primary{font-size:16px}.text-button{font-size:15px}.favorites .empty>svg{width:40px;height:40px}}.gift-summary{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:20px;padding:22px;display:grid}.gift-summary span{color:var(--muted);font-size:12px;display:block}.gift-summary strong{color:var(--accent);overflow-wrap:anywhere;font-size:26px;display:block}.record-name>span{overflow-wrap:anywhere}@media (max-width:760px){.gift-summary{gap:12px;padding:16px}.gift-summary strong{font-size:21px}}
