@charset "UTF-8";
:root{--bg:#f8f8f6;--surface:#ffffff;--ink:#202020;--muted:#898989;--secondary:#696969;--line:#e7e7e7;--action:#656565;--action-hover:#515151;--action-soft:#f2f2f2;--amber:#7b7b7b;--amber-bg:#f4f4f4;--radius:12px;--shadow:0 12px 40px #3333330c;--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Microsoft YaHei",sans-serif}

*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--bg);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button{color:inherit}
button:disabled{opacity:.5;cursor:not-allowed}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a7a7a7;outline-offset:3px}
svg.icon{width:19px;height:19px;display:block;flex-shrink:0}
button svg{pointer-events:none}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:238px;flex-shrink:0;background:#fcfcfc;border-right:1px solid var(--line);height:100vh;position:sticky;top:0;display:flex;flex-direction:column;padding:29px 18px 0;z-index:20}
.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:750;letter-spacing:-.7px;margin:0 10px 28px}
.brand-mark{width:36px;height:39px;display:grid;place-items:center;background:var(--action);color:white;border-radius:6px 10px 10px 3px;box-shadow:0 4px 10px #65656522}
.brand-mark svg{width:25px;height:25px}
.brand small{display:block;font-size:9px;letter-spacing:1.1px;color:var(--muted);font-weight:500;margin-top:1px}
.workspace-chip{display:flex;align-items:center;gap:9px;padding:11px 10px;background:white;border:1px solid var(--line);border-radius:6px;margin-bottom:26px;font-size:12px;font-weight:500}
.workspace-chip small{display:block;font-weight:400;color:var(--muted);font-size:10px;margin-top:2px}
.workspace-icon{width:30px;height:30px;display:grid;place-items:center;background:#f1f1f1;border:1px solid #e6e6e6;border-radius:6px;color:#747474;font-family:Georgia,serif;font-size:18px}
.chip-lock{margin-left:auto;color:#a0a0a0}
.chip-lock svg{width:14px;height:14px}
.nav-label{font-size:10px;color:#9e9e9e;font-weight:500;letter-spacing:1.1px;padding:0 13px;margin-bottom:9px}
.nav-item{position:relative;width:100%;display:flex;align-items:center;gap:11px;border:0;background:none;color:#747474;border-radius:6px;padding:11px 13px;font-size:13px;text-align:left;margin-bottom:4px;transition:background .15s,color .15s}
.nav-item:hover{background:#f1f1f1;color:var(--ink)}
.nav-item.active{color:var(--action-hover);background:#efefef;font-weight:500}
.nav-item.active:before{content:"";position:absolute;left:-18px;height:20px;width:3px;background:var(--action);border-radius:0 3px 3px 0}
.nav-item .nav-count{margin-left:auto;font-size:11px;min-width:21px;padding:0 5px;text-align:center;color:#909090}
.nav-item.active .nav-count{background:#e5e5e5;color:#666666;border-radius:4px}
.project-label{margin-top:26px;display:flex;justify-content:space-between;padding-right:15px}
.project-item{font-size:12px}
.project-dot{width:7px;height:7px;border-radius:2px;flex-shrink:0}
.sidebar-bottom{margin-top:auto;padding-top:24px}
.host-status{margin:15px 4px 20px;border:1px solid var(--line);border-radius:6px;padding:13px 12px;background:#f8f8f8}
.host-line{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:500}
.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#888888;box-shadow:0 0 0 3px #88888810}
.demo-mini{font-size:9px;color:#929292;font-weight:400;margin-left:auto}
.host-status p{font-size:10px;color:var(--muted);margin:7px 0 13px}
.storage-track{height:3px;background:#e7e7e7;border-radius:2px}
.storage-track span{display:block;background:#9d9d9d;width:28%;height:100%;border-radius:2px}
.storage-label{display:flex;justify-content:space-between;font-size:9px;color:#979797;margin-top:7px}
.profile{border-top:1px solid var(--line);display:flex;align-items:center;gap:9px;padding:18px 4px;font-size:11px;font-weight:500}
.avatar{width:30px;height:30px;background:#e6e6e6;color:#797979;display:grid;place-items:center;border-radius:50%;font-family:Georgia,serif}
.profile small{display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:1px}
.profile>span:last-child{margin-left:auto;color:#a0a0a0}
.profile svg{width:15px}
.main-shell{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:76px;background:#ffffffc9;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;gap:16px}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:13px;font-size:12px}
.topbar-left .icon{width:13px;color:#b2b2b2}
.breadcrumb-home{color:#989898}
.topbar-right{gap:20px}
.domain-pill{display:flex;align-items:center;gap:6px;font-size:11px;color:#828282}
.domain-pill svg{width:12px;height:12px}
.prototype-badge{display:flex;align-items:center;gap:6px;border-left:1px solid var(--line);padding-left:20px;font-size:10px;color:#878787}
.prototype-badge span{width:5px;height:5px;border-radius:50%;background:#ababab}
main{padding:35px 42px 24px;max-width:1600px;width:100%;margin:0 auto;flex:1}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:27px}
.eyebrow{font-size:10px;letter-spacing:1.9px;color:#9f9f9f;font-weight:500;margin-bottom:7px}
.page-heading h1{font-size:29px;letter-spacing:-1px;line-height:1.25;margin:0 0 9px;font-weight:500}
.page-heading p{font-size:12px;color:var(--muted);margin:0}
.heading-actions{display:flex;align-items:center;gap:9px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:10px 15px;border:1px solid var(--line);border-radius:6px;background:white;color:#646464;font-size:12px;white-space:nowrap;transition:background .15s,transform .15s}
.button:hover{background:#f9f9f9;border-color:#d2d2d2}
.button:active{transform:translateY(1px)}
.button.primary{background:var(--action);border-color:var(--action);color:white;box-shadow:0 3px 7px #65656515}
.button.primary:hover{background:var(--action-hover)}
.button.soft{background:var(--action-soft);color:var(--action-hover);border-color:transparent}
.button.danger{color:#6b6b6b;border-color:#d3d3d3;background:#ffffff}
.button.small{padding:7px 11px;font-size:11px}
.button .icon{width:15px;height:15px}
.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid transparent;border-radius:6px;background:transparent;color:#929292;flex-shrink:0}
.icon-button:hover{background:#f2f2f2;color:var(--action);border-color:#e9e9e9}
.icon-button .icon{width:17px;height:17px}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);background:white;border:1px solid var(--line);border-radius:6px;padding:19px 0;margin-bottom:28px;box-shadow:0 2px 3px #21212102}
.stat{padding:0 25px;border-right:1px solid var(--line);display:flex;align-items:center;gap:14px}
.stat:last-child{border:0}
.stat-icon{width:37px;height:37px;border-radius:6px;background:#f5f5f5;color:#9b9b9b;display:grid;place-items:center}
.stat-icon .icon{width:18px}
.stat-label{font-size:10px;color:#989898}
.stat-value{font-size:24px;line-height:1.2;letter-spacing:-.8px;font-weight:500;margin-top:4px}
.stat-value small{font-size:10px;font-weight:400;letter-spacing:0;margin-left:5px;color:#9e9e9e}
.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 13px}
.section-title h2{font-size:13px;margin:0;font-weight:500}
.text-button{display:inline-flex;align-items:center;gap:5px;border:0;background:none;padding:2px;color:#878787;font-size:11px}
.text-button:hover{color:var(--action)}
.text-button svg{width:13px;height:13px}
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px}
.project-card{padding:18px 18px 14px;text-align:left;background:white;border:1px solid var(--line);border-radius:6px;transition:border .2s,transform .2s;cursor:pointer}
.project-card:hover{border-color:#bdbdbd;transform:translateY(-2px)}
.project-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}
.folder-icon{width:37px;height:31px;border-radius:4px 7px 7px 7px;background:var(--folder-bg,#f1f1f1);position:relative;color:var(--folder-color,#969696);display:grid;place-items:center;margin-top:4px}
.folder-icon:before{content:"";position:absolute;left:0;top:-4px;background:inherit;width:16px;height:8px;border-radius:4px 4px 0 0}
.folder-icon svg{width:19px;height:19px;position:relative}
.project-code{font-size:9px;letter-spacing:.9px;color:#a5a5a5;font-family:ui-monospace,monospace}
.project-card h3{font-size:13px;margin:0 0 8px;font-weight:500}
.project-card-bottom{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#9f9f9f}
.project-card-bottom .icon{width:13px;height:13px}
.library-panel{background:white;border:1px solid var(--line);border-radius:6px;overflow:hidden;box-shadow:0 2px 4px #21212102}
.library-panel-header{padding:19px 21px 0;display:flex;justify-content:space-between;align-items:center}
.library-panel-header h2{font-size:13px;margin:0;font-weight:500}
.library-panel-header .subtle{font-size:10px}
.subtle{color:var(--muted)}
.toolbar{display:flex;align-items:center;gap:9px;padding:18px 21px 16px;flex-wrap:wrap}
.search-box{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:8px 10px;min-width:200px;width:300px;background:#ffffff;color:#a8a8a8}
.search-box input{width:100%;border:0;outline:0;background:none;font-size:11px;color:var(--ink);min-width:0}
.search-box input::placeholder{color:#a8a8a8}
.search-box .icon{width:15px;height:15px}
.search-box:focus-within{border-color:#aaaaaa;box-shadow:0 0 0 2px #65656508}
.search-box input:focus-visible{outline:0}
.search-key{border:1px solid #e9e9e9;border-radius:3px;font-size:10px;padding:0 4px;line-height:16px;color:#afafaf}
.filter-select{border:1px solid var(--line);border-radius:6px;background:#ffffff;padding:8px 27px 8px 10px;font-size:11px;color:#727272;max-width:155px}
.toolbar-right{display:flex;align-items:center;gap:6px;margin-left:auto}
.view-toggle{display:flex;border:1px solid var(--line);border-radius:6px;padding:2px;gap:2px}
.view-toggle button{border:0;background:none;border-radius:4px;width:27px;height:25px;display:grid;place-items:center;color:#a8a8a8}
.view-toggle button.active{background:#f1f1f1;color:var(--action)}
.view-toggle svg{width:14px;height:14px}
.table-scroll{overflow-x:auto}
.materials-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}
.materials-table th{font-size:10px;color:#a0a0a0;font-weight:500;background:#fbfbfb;border-top:1px solid #efefef;border-bottom:1px solid #efefef;padding:10px 12px}
.materials-table td{padding:16px 12px;border-bottom:1px solid #efefef;font-size:11px;color:#848484}
.materials-table th:first-child,.materials-table td:first-child{padding-left:23px}
.materials-table th:last-child,.materials-table td:last-child{padding-right:19px;text-align:right}
.materials-table tr:last-child td{border-bottom:0}
.material-row{cursor:pointer;transition:background .15s}
.material-row:hover{background:#fdfdfd}
.file-cell{display:flex;align-items:center;gap:11px;min-width:230px}
.file-icon{width:33px;height:40px;border:1px solid #e7e7e7;border-radius:5px;background:#f6f6f6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#919191;position:relative;flex-shrink:0}
.file-icon:after{content:"";position:absolute;right:-1px;top:-1px;width:9px;height:9px;background:linear-gradient(45deg,#e6e6e6 49%,white 51%);border-radius:0 4px 0 2px}
.file-icon .icon{width:14px;height:14px}
.file-icon small{font-size:7px;font-weight:500;letter-spacing:.5px}
.file-icon.contract{background:#f3f3f3;border-color:#e4e4e4;color:#959595}
.file-icon.other{background:#f3f3f3;border-color:#e3e3e3;color:#9c9c9c}
.file-title{font-size:12px;font-weight:500;color:#3e3e3e;max-width:330px;overflow:hidden;text-overflow:ellipsis}
.file-meta{font-size:9px;color:#a6a6a6;margin-top:4px;display:flex;gap:9px;align-items:center}
.project-tag{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#848484;max-width:150px}
.project-tag .project-dot{width:5px;height:5px}
.status-badge{display:inline-flex;align-items:center;gap:4px;border-radius:4px;padding:3px 7px;font-size:9px;white-space:nowrap}
.status-badge svg{width:11px;height:11px}
.status-badge.private{color:#989898;background:#f4f4f4}
.status-badge.shared{background:#f1f1f1;color:#858585}
.status-badge.pending{background:var(--amber-bg);color:var(--amber)}
.status-badge.revoked{color:#989898;background:#f1f1f1}
.row-actions{display:flex;justify-content:flex-end;gap:2px}
.table-bottom{border-top:1px solid #efefef;padding:12px 21px;display:flex;justify-content:space-between;font-size:10px;color:#a8a8a8}
.note-inline{display:flex;gap:6px;align-items:center}
.note-inline svg{width:12px;height:12px}
.app-footer{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#acacac;padding:20px 42px 23px;gap:15px}
.footer-dot{margin:0 5px}
.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:5px 21px 20px}
.material-card{background:white;border:1px solid var(--line);border-radius:6px;overflow:hidden;cursor:pointer}
.material-card:hover{border-color:#b5b5b5}
.material-card-preview{height:125px;background:#f3f3f3;display:flex;align-items:center;justify-content:center;overflow:hidden}
.mini-paper{background:white;box-shadow:0 3px 12px #2f2f2f0e;width:94px;height:110px;transform:translateY(14px);padding:16px 12px;font-size:7px;border:1px solid #eaeaea;color:#7f7f7f}
.mini-paper strong{display:block;font-size:8px;padding-bottom:9px;border-bottom:1px solid #e2e2e2;margin-bottom:10px}
.mini-line{height:3px;background:#ececec;margin:7px 0;width:90%}
.mini-line.short{width:55%}
.material-card-body{padding:13px}
.material-card-body h3{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 9px}
.material-card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.empty-state{text-align:center;padding:52px 20px 60px;color:#a8a8a8}
.empty-state .empty-icon{display:grid;place-items:center;width:55px;height:55px;background:#f4f4f4;border-radius:6px;margin:0 auto 16px;color:#a8a8a8}
.empty-state h3{font-size:14px;color:#6e6e6e;font-weight:500;margin:0 0 7px}
.empty-state p{font-size:11px;margin:0 0 18px}
.notice{display:flex;align-items:flex-start;gap:10px;background:#f6f6f6;border:1px solid #e6e6e6;border-radius:6px;padding:14px 17px;margin-bottom:22px;color:#848484;font-size:11px}
.notice>.icon{width:17px;height:17px;flex-shrink:0}
.notice p{margin:0}
.notice strong{font-weight:500}
.notice.neutral{background:#f3f3f3;border-color:#e6e6e6;color:#808080}
.notice .button{margin-left:auto;align-self:center}
.summary-bar{display:flex;align-items:center;gap:20px;padding:17px 21px;border:1px solid var(--line);border-radius:6px;background:white;margin-bottom:22px;color:#929292;font-size:11px}
.summary-bar strong{font-size:20px;color:#4c4c4c;font-weight:500;margin-right:5px}
.share-url{font-family:ui-monospace,SFMono-Regular,monospace;font-size:9px;color:#969696;max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}
.link-icon{width:34px;height:34px;border-radius:6px;display:grid;place-items:center;background:#f3f3f3;color:#898989}
.catalog-layout{display:grid;grid-template-columns:220px 1fr;gap:20px}
.catalog-tree{padding:18px;background:white;border:1px solid var(--line);border-radius:6px;height:fit-content}
.catalog-tree h3{font-size:11px;margin:0 0 17px;color:#878787}
.tree-row{display:flex;gap:8px;align-items:center;font-size:11px;padding:9px 0;color:#7d7d7d}
.tree-row svg{width:15px;height:15px}
.tree-child{padding-left:20px;font-size:10px;color:#a3a3a3}
.catalog-main{min-width:0}
.catalog-entry{padding:19px 21px;background:white;border:1px solid var(--line);border-radius:6px;margin-bottom:11px}
.catalog-entry h3{font-size:12px;margin:0 0 5px}
.catalog-entry p{font-size:11px;color:#959595;line-height:1.8;margin:9px 0}
.catalog-path{font-size:9px;color:#acacac;font-family:ui-monospace,monospace;overflow-wrap:anywhere}
.tags{display:flex;gap:5px;flex-wrap:wrap}
.tag{border:1px solid #ebebeb;background:#fbfbfb;border-radius:4px;padding:2px 6px;font-size:9px;color:#909090}
.settings-layout{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;align-items:start}
.settings-card{background:white;border:1px solid var(--line);border-radius:6px;padding:23px;margin-bottom:20px}
.settings-card h2{font-size:13px;margin:0 0 6px}
.settings-card>.subtle{font-size:11px;margin:0 0 20px}
.device-row{display:flex;gap:13px;align-items:center;padding:18px 0;border-top:1px solid #efefef}
.device-icon{width:37px;height:37px;display:grid;place-items:center;background:#f3f3f3;border-radius:6px;color:#969696}
.device-info{flex:1}
.device-info strong{font-size:12px;font-weight:500}
.device-info p{font-size:10px;color:#a3a3a3;margin:4px 0 0}
.setting-line{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:17px 0;font-size:11px;color:#8d8d8d}
.setting-line code{font-size:10px;color:#757575}
.toggle-display{width:29px;height:17px;border-radius:6px;background:#9e9e9e;position:relative;flex-shrink:0}
.toggle-display:after{content:"";position:absolute;right:3px;top:3px;width:11px;height:11px;background:white;border-radius:50%}
.rule-list{padding-left:18px;color:#949494;font-size:11px;line-height:2.2;margin-bottom:0}
.modal-backdrop{position:fixed;inset:0;background:#25252559;backdrop-filter:blur(3px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .18s}
.modal{background:#ffffff;border:1px solid #ececec;border-radius:6px;width:640px;max-width:100%;max-height:calc(100vh - 48px);box-shadow:0 25px 90px #28282833;display:flex;flex-direction:column;animation:slide-up .22s}
.modal.wide{width:760px}
.modal.compact{width:460px}
.modal-header{padding:23px 26px 18px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #efefef}
.modal-header h2{margin:0 0 5px;font-size:18px;font-weight:500;letter-spacing:-.3px}
.modal-header p{font-size:11px;color:#9e9e9e;margin:0}
.modal-body{padding:24px 26px;overflow:auto;min-height:0}
.modal-footer{padding:17px 26px;border-top:1px solid #efefef;display:flex;justify-content:space-between;align-items:center;gap:10px}
.modal-footer .foot-note{font-size:10px;color:#a1a1a1}
.modal-footer-actions{display:flex;gap:8px;margin-left:auto}
.steps{display:flex;align-items:center;justify-content:center;gap:16px;font-size:11px;color:#a7a7a7;margin:0 0 22px}
.step{display:flex;align-items:center;gap:7px}
.step span{border:1px solid #e7e7e7;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;font-size:9px}
.step.active{color:#707070;font-weight:500}
.step.active span{color:white;background:var(--action);border-color:var(--action)}
.step-line{width:40px;height:1px;background:#e9e9e9}
.drop-zone{border:1.5px dashed #c6c6c6;border-radius:6px;background:#fafafa;padding:28px 20px;text-align:center;cursor:pointer;position:relative}
.drop-zone.dragging{background:#f1f1f1;border-color:var(--action)}
.drop-zone .upload-cloud{color:#9d9d9d;margin:0 auto 10px;width:42px;height:38px;display:grid;place-items:center}
.drop-zone .upload-cloud svg{width:33px;height:33px}
.drop-zone strong{font-size:12px;color:#6f6f6f;font-weight:500}
.drop-zone p{font-size:10px;color:#a5a5a5;margin:8px 0 0}
.demo-file-button{display:block;margin:12px auto 0;color:#9e9e9e;font-size:10px;cursor:pointer;border:0;background:transparent;text-decoration:underline;text-underline-offset:3px}
.selected-files{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}
.selected-file{display:flex;align-items:center;gap:5px;background:#f4f4f4;border:1px solid #e9e9e9;padding:5px 8px;border-radius:5px;font-size:10px;color:#7e7e7e}
.selected-file svg{width:12px;height:12px}
.field{margin-top:18px}
.field label,.field-label{display:block;color:#666666;font-size:11px;font-weight:500;margin-bottom:7px}
.required{color:#8d8d8d;margin-left:3px}
.field input,.field select,.field textarea{width:100%;border:1px solid #e4e4e4;border-radius:6px;padding:10px 11px;background:white;color:#5a5a5a;font-size:12px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#aaaaaa}
.field textarea{min-height:79px;line-height:1.7}
.field-hint{font-size:10px;color:#a6a6a6;margin-top:6px;line-height:1.7}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.error-text{font-size:11px;color:#747474;margin-top:12px}
.code-block{background:#f7f7f7;border:1px solid #e8e8e8;color:#6f6f6f;padding:17px;border-radius:6px;font:10px/1.9 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;max-height:320px;overflow:auto}
.code-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#8c8c8c;margin-bottom:10px;gap:8px}
.review-summary{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:18px}
.review-summary div{padding:12px 14px;background:#fafafa;border:1px solid #eaeaea;border-radius:6px;color:#656565;font-size:12px}
.review-summary small{display:block;font-size:9px;color:#a9a9a9;margin-bottom:4px}
.success-panel{text-align:center;padding:20px 0}
.success-icon{width:52px;height:52px;border-radius:50%;background:#f1f1f1;display:grid;place-items:center;color:#858585;margin:0 auto 17px}
.success-panel h3{font-size:19px;font-weight:500;margin:0 0 9px}
.success-panel p{font-size:12px;color:#a1a1a1;margin:0;line-height:1.8}
.progress-track{height:4px;background:#eeeeee;border-radius:2px;overflow:hidden;margin:25px auto 12px;width:80%}
.progress-track span{display:block;background:var(--action);height:100%;width:0;animation:progress 1s forwards}
.success-caption{font-size:10px!important;margin-top:14px!important}
.drawer-backdrop{justify-content:flex-end;padding:0;background:#25252538}
.drawer{width:540px;max-width:95vw;height:100%;background:white;box-shadow:-10px 0 55px #33333322;display:flex;flex-direction:column;animation:slide-left .2s}
.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--line);font-size:11px;color:#a0a0a0}
.drawer-body{overflow:auto;padding:26px;flex:1}
.drawer-heading{display:flex;gap:14px;align-items:center;margin-bottom:24px}
.drawer-heading h2{font-size:18px;font-weight:550;margin:0 0 6px}
.drawer-heading p{font-size:10px;color:#a6a6a6;margin:0}
.drawer-tabs{display:flex;gap:22px;border-bottom:1px solid #eaeaea;margin-bottom:22px}
.drawer-tabs button{font-size:11px;color:#a1a1a1;border:0;background:none;padding:10px 1px 12px;position:relative}
.drawer-tabs button.active{color:var(--action);font-weight:500}
.drawer-tabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--action)}
.document-stage{background:#f1f1f1;border:1px solid #eaeaea;border-radius:6px;padding:24px;min-height:285px;display:flex;align-items:center;justify-content:center}
.document-paper{width:100%;background:white;padding:23px 22px;color:#727272;box-shadow:0 4px 14px #4040400b;border:1px solid #ececec;position:relative;overflow:hidden}
.paper-top{display:flex;justify-content:space-between;font-size:8px;color:#adadad}
.document-paper h3{text-align:center;font-size:17px;font-weight:500;letter-spacing:3px;color:#717171;border-bottom:2px solid #c3c3c3;padding:12px 0;margin:5px 0 16px}
.paper-route{display:flex;justify-content:space-between;align-items:center;font-size:18px;margin:23px 0 12px;color:#616161}
.paper-route span:nth-child(2){font-size:10px;color:#adadad}
.paper-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;font-size:9px;margin:15px 0 22px}
.paper-grid span{color:#ababab;font-size:8px;display:block;margin-bottom:4px}
.paper-footer{padding-top:13px;border-top:1px dashed #dfdfdf;font-size:8px;color:#adadad;display:flex;justify-content:space-between}
.watermark{position:absolute;left:14%;top:43%;transform:rotate(-23deg);font-size:40px;letter-spacing:5px;color:#cacaca26;font-weight:700;pointer-events:none;white-space:nowrap}
.file-list{margin-top:18px}
.file-list-row{display:flex;align-items:center;gap:9px;font-size:11px;padding:11px 0;color:#8b8b8b;border-bottom:1px solid #f0f0f0}
.file-list-row svg{width:15px;height:15px}
.file-list-row small{margin-left:auto;font-size:9px;color:#b3b3b3}
.detail-section{margin-bottom:22px}
.detail-section h3{font-size:10px;color:#a8a8a8;font-weight:400;margin:0 0 8px}
.detail-section p{font-size:12px;line-height:1.9;color:#797979;margin:0}
.detail-line{display:flex;justify-content:space-between;align-items:center;margin:14px 0;font-size:11px;gap:15px}
.detail-line span:first-child{color:#aaaaaa}
.detail-line span:last-child{color:#7c7c7c;text-align:right}
.drawer-footer{border-top:1px solid var(--line);padding:19px 25px;display:flex;gap:9px}
.drawer-footer .button:last-child{margin-left:auto}
.share-target{border:1px solid #e6e6e6;border-radius:6px;background:#fbfbfb;padding:14px;display:flex;align-items:center;gap:12px}
.share-target strong{display:block;font-size:12px;font-weight:500}
.share-target small{display:block;font-size:10px;color:#a5a5a5;margin-top:3px}
.share-result{margin-top:17px}
.url-box{padding:12px;background:#f7f7f7;border:1px solid #e7e7e7;border-radius:6px;font-size:11px;font-family:ui-monospace,monospace;overflow-wrap:anywhere;color:#6b6b6b}
.share-result-actions{display:flex;gap:8px;margin-top:12px}
.privacy-line{display:flex;align-items:flex-start;gap:7px;color:#a0a0a0;font-size:10px;line-height:1.8;margin-top:17px}
.privacy-line svg{flex-shrink:0;width:14px;height:14px;margin-top:2px}
.toast{position:fixed;bottom:30px;left:calc(50% + 90px);transform:translate(-50%,15px);padding:12px 18px;max-width:90vw;border-radius:6px;background:#393939;color:#f5f5f5;box-shadow:0 6px 28px #33333325;z-index:200;opacity:0;pointer-events:none;transition:.2s;font-size:12px;display:flex;align-items:center;gap:8px}
.toast.visible{opacity:1;transform:translate(-50%,0)}
.toast svg{width:16px;height:16px;color:#c8c8c8}
.mobile-toggle,.mobile-scrim{display:none}
.project-color-green{--folder-bg:#f1f1f1;--folder-color:#969696}
.project-color-blue{--folder-bg:#f1f1f1;--folder-color:#a0a0a0}
.project-color-orange{--folder-bg:#f1f1f1;--folder-color:#a2a2a2}
@keyframes fade-in{from{opacity:0}
to{opacity:1}
}
@keyframes slide-up{from{opacity:0;transform:translateY(14px)}
to{opacity:1;transform:translateY(0)}
}
@keyframes slide-left{from{transform:translateX(30px);opacity:0}
to{transform:translateX(0);opacity:1}
}
@keyframes progress{to{width:100%}
}
@media(min-width:1600px){main{padding-top:44px}
.projects-grid{gap:20px}
.project-card{padding:22px}
.materials-table td{padding-top:20px;padding-bottom:20px}
}
@media(max-width:1200px){.sidebar{width:214px;padding-left:14px;padding-right:14px}
.nav-item.active:before{left:-14px}
main{padding:28px}
.topbar{padding:0 28px}
.app-footer{padding-left:28px;padding-right:28px}
.stat{padding:0 17px;gap:10px}
.stat-icon{width:30px;height:30px}
.file-title{max-width:245px}
.materials-table .date-col{display:none}
.search-box{width:250px;min-width:180px}
.settings-layout{grid-template-columns:1fr 1fr}
.domain-pill{font-size:10px}
}
@media(max-width:960px){.sidebar{width:190px;padding-left:11px;padding-right:11px}
.brand{font-size:21px;margin-left:7px}
.brand small{font-size:8px}
.nav-item{padding-left:10px;gap:8px;font-size:12px}
.nav-item.active:before{left:-11px}
.workspace-chip{font-size:11px}
.stat{padding:0 13px}
.stat-icon{display:none}
.project-card{padding:15px}
.project-card h3{font-size:12px}
main{padding:27px 22px}
.topbar{padding:0 22px}
.domain-pill{display:none}
.file-title{max-width:210px}
.materials-table .type-col{display:none}
.materials-table td{padding-left:9px;padding-right:9px}
.catalog-layout{grid-template-columns:1fr}
.catalog-tree{display:none}
.material-grid{grid-template-columns:repeat(2,1fr)}
.settings-layout{grid-template-columns:1fr}
.page-heading h1{font-size:25px}
.heading-actions .secondary-action{display:none}
.filter-select{max-width:130px}
.search-box{flex:1}
.toolbar-right{margin-left:0}
.app-footer{font-size:8px}
}
@media(max-width:700px){.sidebar{position:fixed;left:0;top:0;width:238px;transform:translateX(-100%);transition:.2s;padding-left:18px;padding-right:18px}
.sidebar.open{transform:translateX(0)}
.sidebar.open+.mobile-scrim{display:block;position:fixed;inset:0;background:#28282855;z-index:19}
.mobile-toggle{display:flex;margin-left:-8px}
.topbar{height:60px;padding:0 20px}
.topbar-left{gap:9px;font-size:11px}
.topbar-right{gap:0}
.prototype-badge{border:0;padding:0;font-size:9px}
main{padding:24px 18px}
.page-heading{margin-bottom:23px;align-items:flex-end}
.page-heading h1{font-size:25px}
.page-heading p{font-size:10px;max-width:235px}
.eyebrow{font-size:9px}
.heading-actions .button{padding:9px 11px;font-size:11px}
.stats-row{grid-template-columns:repeat(4,1fr);padding:15px 0;margin-bottom:24px}
.stat{padding:0 11px}
.stat-label{font-size:9px}
.stat-value{font-size:21px}
.stat-value small{font-size:8px;margin-left:2px}
.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:24px}
.project-card{padding:12px 10px}
.project-card-top{margin-bottom:12px}
.project-code{display:none}
.project-card h3{font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.project-card-bottom{font-size:9px}
.project-card-bottom .update-label{display:none}
.folder-icon{width:29px;height:25px}
.folder-icon svg{width:16px}
.section-title h2{font-size:12px}
.library-panel-header{padding:16px 14px 0}
.toolbar{padding:14px;gap:7px}
.search-box{width:100%;flex:1 1 100%}
.filter-select{font-size:10px;padding:7px 19px 7px 8px;max-width:120px}
.toolbar-right{margin-left:auto}
.materials-table th:first-child,.materials-table td:first-child{padding-left:14px}
.materials-table th:last-child,.materials-table td:last-child{padding-right:12px}
.materials-table .project-col,.materials-table .status-col{display:none}
.file-cell{min-width:210px;gap:9px}
.file-title{max-width:220px;font-size:11px}
.file-meta{font-size:8px}
.file-icon{width:29px;height:35px}
.row-actions .icon-button{width:27px}
.table-bottom{padding:12px 14px;font-size:9px}
.table-bottom .note-inline{display:none}
.app-footer{padding:14px 18px 20px;font-size:8px}
.app-footer>span:last-child{display:none}
.modal-backdrop{padding:12px}
.modal{max-height:calc(100dvh - 24px);border-radius:6px}
.modal-header{padding:20px}
.modal-body{padding:20px}
.modal-footer{padding:15px 20px}
.modal-footer .foot-note{max-width:145px;font-size:9px}
.modal-header h2{font-size:17px}
.steps{gap:9px;font-size:10px}
.step-line{width:20px}
.drop-zone{padding:23px 15px}
.field-row{gap:10px}
.drawer-backdrop{padding:0}
.drawer{max-width:100vw;width:100%}
.drawer-body{padding:22px}
.toast{left:50%;bottom:20px;font-size:11px}
.material-grid{padding:0 14px 14px;gap:10px}
.material-card-body{padding:10px}
.material-card-body h3{font-size:10px}
.material-card-bottom{flex-wrap:wrap;gap:5px}
.share-table .expiry-col{display:none}
.share-table .file-cell{min-width:195px}
.share-url{max-width:210px}
.summary-bar{gap:14px;padding:15px;font-size:10px}
.summary-bar strong{font-size:18px}
.review-summary{gap:10px}
.review-summary div{font-size:11px;padding:10px}
.share-result-actions{flex-wrap:wrap}
.notice{font-size:10px;padding:12px}
.notice .button{font-size:9px;padding:6px}
.settings-card{padding:19px}
.nav-item{font-size:13px;padding-left:13px}
.nav-item.active:before{left:-18px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}


@media(max-width:700px){.sidebar{visibility:hidden}
.sidebar.open{visibility:visible}
}


/* Quiet surfaces, legible type, and small primary-color accents. */
:root {
  --bg:#f5f5f2; --surface:#fff; --ink:#252623; --muted:#6e7069; --secondary:#666761; --line:#ddded7;
  --action:#292b27; --action-hover:#161813; --action-soft:#eeefea; --amber:#62645e; --amber-bg:#eeefea;
  --red:#e64032; --yellow:#f4c62a; --blue:#245be0; --radius:4px; --shadow:none;
  --font:'FileHub PuHui','PingFang SC','Microsoft YaHei',sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1); --duration:180ms;
}
body { font-synthesis:none; font-size:14px; line-height:1.65; letter-spacing:.012em; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.sidebar { width:220px; padding:33px 18px 0; background:var(--surface); }
.brand { margin:0 10px 39px; gap:10px; font-size:25px; font-weight:500; letter-spacing:-.7px; }
.brand-mark { background:none; color:var(--ink); width:32px; height:36px; border-radius:0; box-shadow:none; }
.brand-mark svg { width:32px; height:32px; }
.brand small { font-size:11px; margin-top:3px; letter-spacing:.14em; color:var(--secondary); }
.nav-label { color:var(--muted); font-size:11px; font-weight:400; margin-bottom:10px; }
.nav-item { color:var(--secondary); font-size:14px; border-radius:4px; padding:11px 13px; transition:background var(--duration),color var(--duration); }
.nav-item:hover { background:#f3f3ee; color:var(--ink); }
.nav-item.active { background:#eeefea; color:var(--ink); font-weight:500; }
.nav-item.active:before { width:5px; height:24px; background:var(--yellow); border-radius:0 2px 2px 0; }
.nav-item.active .nav-count { background:#e2e4dc; color:#4f514a; }
.nav-item .nav-count { font-size:12px; color:var(--secondary); }
.project-label { margin-top:30px; }
.project-item { font-size:13px; }
.project-dot { border-radius:50%; width:8px; height:8px; }
.host-status { border:0; border-top:1px solid var(--line); border-radius:0; margin:20px 4px 24px; padding:17px 0 0; background:none; }
.host-line { font-size:12px; font-weight:400; }
.status-dot { background:var(--blue); box-shadow:none; width:6px; height:6px; }
.demo-mini,.storage-label { color:var(--muted); font-size:10px; }
.storage-label { margin-top:9px; }
.topbar { height:64px; background:var(--surface); padding:0 40px; }
.topbar-left,.topbar-right { font-size:13px; }
.topbar-right { gap:18px; }
.domain-pill { font-size:12px; color:var(--secondary); }
.breadcrumb-home { color:var(--muted); }
.prototype-badge { color:var(--secondary); font-size:11px; }
.prototype-badge span { background:var(--yellow); width:7px; height:7px; }
main { max-width:1480px; padding:34px 40px 28px; }
.page-heading { margin-bottom:26px; align-items:center; }
.eyebrow { color:var(--secondary); font:11px/1.4 ui-monospace,monospace; letter-spacing:.13em; margin-bottom:10px; display:flex; align-items:center; gap:10px; }
.eyebrow:before { content:''; display:block; width:17px; height:1px; background:var(--ink); }
.page-heading h1 { font-family:var(--font); font-size:34px; line-height:1.35; font-weight:500; letter-spacing:.015em; margin-bottom:8px; }
.page-heading p { color:var(--secondary); font-size:14px; }
.button { border-radius:4px; padding:10px 16px; color:var(--ink); font-size:13px; font-weight:500; border-color:#d3d5cc; transition:background var(--duration),border-color var(--duration),box-shadow var(--duration),transform var(--duration) var(--ease); }
.button.primary { box-shadow:none; }
.button:hover { border-color:#8d9186; background:#f2f3ed; box-shadow:0 2px 5px #25262308; }
.button.primary:hover { background:var(--action-hover); border-color:var(--action-hover); box-shadow:0 3px 8px #25262318; }
.button:active { transform:translateY(1px); box-shadow:none; }
.button.soft { color:var(--ink); background:#eeefea; }
.button.small { font-size:12px; }
.button.danger { color:var(--ink); border-color:#c8cbc1; }
.button.danger:before { content:''; width:6px; height:6px; border-radius:50%; background:var(--red); }
.icon-button { width:34px; height:34px; color:var(--secondary); border-radius:4px; transition:color var(--duration),background var(--duration),border-color var(--duration); }
.icon-button:hover { color:var(--ink); background:#eeefea; border-color:#d3d5cc; }
.stats-row { border:0; border-top:1px solid #bfc3b8; border-bottom:1px solid var(--line); border-radius:0; background:none; box-shadow:none; padding:18px 0; margin-bottom:29px; }
.stat { padding:0 28px; }
.stat:first-child { padding-left:0; }
.stat-icon { display:none; }
.stat-label { color:var(--secondary); font-size:12px; }
.stat-value { font-family:var(--font); font-size:29px; line-height:1.2; font-weight:500; margin-top:9px; font-variant-numeric:tabular-nums; }
.stat-value small { color:var(--secondary); font-size:11px; margin-left:8px; }
.section-title { margin-bottom:14px; }
.section-title h2 { font-weight:500; font-size:15px; }
.section-number { color:var(--muted); font:11px ui-monospace,monospace; margin-right:11px; }
.text-button { color:var(--secondary); font-size:12px; transition:color var(--duration); }
.text-button:hover { color:var(--ink); }
.projects-grid { gap:16px; margin-bottom:29px; }
.project-card { border-radius:4px; padding:16px 19px; background:var(--surface); transition:border-color var(--duration),box-shadow var(--duration),transform var(--duration) var(--ease); }
.project-card:hover { border-color:#b0b5a8; transform:translateY(-2px); box-shadow:0 5px 13px #25262308; }
.project-card:active { transform:translateY(0); }
.project-card-top { margin-bottom:17px; }
.project-marker { width:10px; height:10px; display:block; border-radius:50%; background:var(--project-accent); }
.project-code { color:var(--secondary); font-size:11px; letter-spacing:.08em; }
.project-card h3 { font-size:16px; font-weight:500; margin-bottom:7px; }
.project-card-bottom { color:var(--secondary); font-size:12px; }
.project-card-bottom>.icon { transition:transform var(--duration) var(--ease); }
.project-card:hover .project-card-bottom>.icon { transform:translateX(3px); }
.library-panel { border-radius:4px; box-shadow:none; }
.library-panel-header { padding-top:20px; }
.library-panel-header h2 { font-size:15px; font-weight:500; }
.library-panel-header>.subtle { display:none; }
.search-box,.filter-select,.view-toggle { border-radius:4px; }
.search-box { padding:9px 11px; border-color:#c8c9c2; transition:border-color var(--duration),box-shadow var(--duration); }
.search-box input,.filter-select { font-size:13px; }
.search-box input::placeholder { color:var(--muted); }
.search-box:focus-within { border-color:var(--blue); box-shadow:0 0 0 2px #245be00c; }
.filter-select { border-color:#c8c9c2; color:var(--secondary); }
.view-toggle button { transition:background var(--duration),color var(--duration); }
.materials-table th { background:#f4f5f0; color:var(--secondary); font-size:12px; padding-top:11px; padding-bottom:11px; }
.materials-table td { color:#595c54; font-size:13px; padding-top:17px; padding-bottom:17px; }
.material-row { transition:background 140ms ease; }
.material-row:hover { background:#f5f6f1; }
.material-row:focus-visible { outline:2px solid var(--blue); outline-offset:-2px; }
.file-title { color:var(--ink); font-size:14px; font-weight:500; }
.file-meta { color:var(--muted); font-size:11px; }
.file-icon,.file-icon.contract,.file-icon.other { color:#62665b; background:#f0f1ec; border-color:#e1e4d9; border-radius:3px; }
.file-icon small { color:var(--secondary); font-size:9px; }
.project-tag { color:var(--secondary); font-size:12px; }
.status-badge,.status-badge.shared,.status-badge.pending,.status-badge.private,.status-badge.revoked { color:#60645a; background:#eeefea; border-radius:3px; font-size:11px; }
.status-badge.shared:before,.status-badge.pending:before { content:''; width:5px; height:5px; border-radius:50%; background:var(--blue); margin-right:3px; }
.status-badge.pending:before { background:var(--yellow); }
.status-badge svg { color:var(--secondary); }
.table-bottom,.app-footer { color:var(--muted); font-size:11px; }
.app-footer { padding:20px 40px 26px; }
.notice,.notice.neutral { color:#55594f; background:#eeefea; border:0; border-left:3px solid #969e8c; border-radius:0; padding:13px 16px; font-size:13px; }
.notice:not(.neutral) { border-left:4px solid var(--yellow); }
.summary-bar { color:var(--secondary); font-size:13px; }
.summary-bar strong { color:var(--ink); }
.link-icon,.device-icon,.empty-icon { color:#62665b; background:#eeefea; }
.catalog-tree,.catalog-entry,.settings-card,.material-card { border-radius:4px; box-shadow:none; }
.catalog-tree { background:none; border:0; border-right:1px solid var(--line); border-radius:0; padding-left:0; }
.catalog-tree h3,.tree-row { font-size:13px; }
.catalog-entry { padding:23px; }
.catalog-entry h3 { font-size:15px; font-weight:500; }
.catalog-entry p { color:var(--secondary); font-size:14px; line-height:1.8; }
.catalog-path { color:var(--muted); font-size:11px; }
.tag { color:var(--secondary); font-size:11px; background:#f4f5f0; border-color:var(--line); border-radius:3px; }
.settings-card { padding:25px; }
.settings-card h2 { font-size:16px; font-weight:500; }
.settings-card>.subtle,.subtle,.field-hint,.device-info p { color:var(--muted); font-size:12px; }
.device-info strong { font-size:14px; font-weight:500; }
.device-info p { margin-top:5px; }
.rule-list { font-size:13px; color:var(--secondary); line-height:1.9; }
.setting-line { color:var(--secondary); font-size:13px; }
.setting-line code { color:var(--ink); font-size:12px; }
.toggle-display { background:#41423d; }
.modal { border-radius:6px; border:0; box-shadow:0 20px 80px #25262322; }
.modal-backdrop { background:#25262355; backdrop-filter:blur(2px); }
.modal-header { padding:25px 28px 19px; }
.modal-header h2 { font-size:22px; font-weight:500; letter-spacing:.015em; }
.modal-header p { color:var(--secondary); font-size:13px; margin-top:7px; }
.modal-header p:empty { display:none; }
.modal-body { padding:24px 28px; }
.modal-footer { padding:18px 28px; }
.modal-footer .foot-note { font-size:11px; color:var(--muted); }
.step { color:var(--secondary); font-size:12px; }
.step.active { color:var(--ink); }
.step.active span { background:var(--ink); color:#fff; }
.drop-zone { background:#f8f8f5; border-color:#afb6a5; border-radius:4px; transition:background var(--duration),border-color var(--duration); }
.drop-zone:hover,.drop-zone.dragging { background:#f0f1ec; border-color:#65675f; }
.drop-zone .upload-cloud { color:#55564f; }
.drop-zone strong { color:var(--ink); font-size:14px; }
.drop-zone p,.demo-file-button { color:var(--secondary); font-size:12px; }
.selected-file { color:var(--secondary); font-size:11px; background:#f0f1ec; border-color:#e1e4d9; }
.field label,.field-label { color:#4a4b45; font-size:13px; }
.field input,.field select,.field textarea { color:var(--ink); border-color:#c8c9c2; border-radius:4px; font-size:14px; line-height:1.65; }
.field input::placeholder,.field textarea::placeholder { color:#75796d; }
.required { color:var(--red); }
.field-hint,.privacy-line { color:var(--secondary); font-size:12px; }
.error-text { color:#ae3126; font-size:12px; }
.code-block { background:#f4f5f0; color:#41423d; border-color:var(--line); border-radius:4px; font-size:12px; }
.code-heading { color:var(--secondary); font-size:12px; }
.review-summary div { color:var(--ink); font-size:14px; background:#f4f5f0; border-color:var(--line); border-radius:4px; }
.review-summary small { color:var(--secondary); font-size:11px; }
.success-icon { background:#eeefea; color:var(--ink); }
.success-panel h3 { color:var(--ink); font-size:22px; }
.success-panel p { color:var(--secondary); font-size:14px; }
.drawer { width:570px; box-shadow:-10px 0 55px #25262322; }
.drawer-header,.drawer-heading p,.drawer-tabs button { color:var(--secondary); font-size:12px; }
.drawer-heading h2 { font-weight:500; font-size:21px; line-height:1.5; }
.drawer-tabs button { font-size:13px; transition:color var(--duration); }
.drawer-tabs button.active { color:var(--ink); }
.document-stage { background:#f0f1ec; border-color:#e1e4d9; border-radius:4px; }
.document-paper,.document-paper h3,.paper-route { color:#41423d; }
.detail-section h3,.detail-line span:first-child { color:var(--secondary); font-size:12px; }
.detail-section p,.detail-line span:last-child { color:#4a4b45; font-size:14px; }
.detail-line,.file-list-row { font-size:13px; }
.file-list-row { color:var(--secondary); }
.file-list-row small { font-size:11px; color:var(--muted); }
.share-target,.url-box { background:#f4f5f0; border-color:var(--line); border-radius:4px; color:var(--ink); }
.share-target strong { font-size:14px; }
.share-target small { color:var(--secondary); font-size:12px; }
.url-box,.share-url { font-size:12px; }
.toast { background:#292b27; color:#fff; border-radius:4px; box-shadow:0 5px 20px #25262322; font-size:13px; }
.toast svg { color:#fff; }
.ai-guide-link { display:inline-flex; align-items:center; gap:7px; }
.guide-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
.material-card:hover { border-color:#aeb5a4; box-shadow:0 4px 12px #25262308; }
.material-card { transition:border-color var(--duration),box-shadow var(--duration); }
.material-card-body h3 { font-size:14px; }
.swapping,.swapping .drawer { animation:none; }
.swapping .drawer-body { animation:panel-reveal 160ms var(--ease); }
@keyframes panel-reveal { from { opacity:.35; transform:translateY(3px); } to { opacity:1; transform:none; } }
@media(max-width:1200px) { main { padding:30px; } .topbar { padding:0 30px; } .sidebar { width:210px; } .stat { padding:0 22px; } .app-footer { padding-left:30px; padding-right:30px; } .update-label { display:none; } .search-box { width:270px; } }
@media(max-width:960px) { .sidebar { width:190px; padding-left:12px; padding-right:12px; } main { padding:26px; } .topbar { padding:0 26px; } .brand { margin-left:6px; margin-right:0; font-size:23px; } .stat { padding:0 17px; } .project-card { padding:16px; } .project-card h3 { font-size:14px; } .catalog-tree { border-right:0; } .project-item { font-size:12px; } .toolbar { flex-wrap:wrap; } }
@media(max-width:700px) { .sidebar { width:236px; padding:30px 18px 0; } main { padding:25px 20px 18px; } .topbar { height:58px; padding:0 20px; } .page-heading { margin-bottom:23px; } .page-heading h1 { font-size:30px; } .page-heading p { font-size:13px; } .eyebrow { font-size:10px; margin-bottom:10px; } .stats-row { padding:16px 0; margin-bottom:25px; } .stat { padding:0 13px; } .stat-label { font-size:11px; } .stat-value { font-size:27px; } .projects-grid { gap:9px; margin-bottom:25px; } .project-card { padding:14px 11px; } .project-card-top { margin-bottom:15px; } .project-card h3 { font-size:14px; } .project-card-bottom { font-size:11px; } .project-code { font-size:10px; } .app-footer { padding:18px 20px; font-size:10px; } .modal-header,.modal-body { padding:20px; } .modal-footer { padding:16px 20px; } .button { padding:9px 12px; } .catalog-entry { padding:18px; } .settings-card { padding:20px; } .drawer { width:100%; } .file-title { max-width:290px; } }
@media(max-width:480px) { .projects-grid { grid-template-columns:1fr; } .project-card { display:grid; grid-template-columns:56px 1fr; gap:4px 12px; align-items:center; padding:13px 15px; } .project-card-top { grid-row:1 / 3; flex-direction:column; align-items:flex-start; gap:8px; margin:0; } .project-card h3 { font-size:15px; margin:0; } .stat { padding:0 10px; } .stat-label { font-size:10px; } .heading-actions .button { font-size:12px; padding:9px 10px; } .page-heading p { font-size:12px; } .file-title { max-width:190px; } }
@media(prefers-reduced-motion:reduce) { *,*:before,*:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .project-card:hover,.project-card:hover .project-card-bottom>.icon,.button:active { transform:none; } }
/* Live file host: local font, restrained motion, no persistent client credentials. */
[hidden]{display:none!important}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:32px;background:#f5f5f2}
.auth-card{width:min(100%,440px);padding:44px 40px;background:#fff;border:1px solid #ddded7;border-top:5px solid #f4c62a;border-radius:4px;box-shadow:0 16px 55px #25262306}
.auth-mark{display:flex;align-items:center;gap:9px;font-size:13px;letter-spacing:.1em;font-weight:500;margin-bottom:36px}
.auth-mark>span{width:13px;height:13px;background:#e64032;border-radius:50%}
.auth-mark small{margin-left:auto;color:#666761;font-size:10px;font-weight:400}
.auth-card h1{font-size:28px;font-weight:500;line-height:1.45;margin:0 0 12px;letter-spacing:-.03em}
.auth-card p,.auth-note,.auth-loading{font-size:13px;color:#666761;line-height:1.8}
.auth-card form{margin-top:30px}
.auth-card label{display:block;font-size:13px;margin-bottom:9px}
.auth-card input{width:100%;height:46px;border:1px solid #ddded7;background:#fafaf8;border-radius:3px;padding:0 12px;font:inherit}
.auth-card input:focus{outline:2px solid #245be0;outline-offset:2px}
.auth-card form .button{width:100%;margin-top:16px;justify-content:center;min-height:44px}
.auth-note{margin-top:26px;border-top:1px solid #ddded7;padding-top:18px;font-size:12px}
.auth-card .error-text{margin-top:10px;min-height:20px}
.real-preview{background:#eeefeb;border:1px solid #ddded7;border-radius:4px;overflow:auto;display:grid;place-items:center;min-height:180px;margin-bottom:15px}
.real-preview img{display:block;max-width:100%;max-height:580px;object-fit:contain}
.real-preview iframe{display:block;border:0;width:100%;height:580px;background:#fff}
.compact-empty{padding:34px 16px}
.file-list-row>a{flex:none;color:inherit}
.setting-line code{max-width:70%;overflow-wrap:anywhere;text-align:right;font-size:11px}
.credential-value{font-family:ui-monospace,monospace;min-height:110px;word-break:break-all;resize:vertical}
.button[disabled],button[aria-busy="true"]{opacity:.55;cursor:wait;transform:none!important}
@media(max-width:560px){.auth-screen{padding:20px}.auth-card{padding:32px 24px}.auth-card h1{font-size:25px}.real-preview iframe{height:460px}}
