:root{--bg:#faf9f5;--sunk:#f0eee6;--surface:#fff;--line:#e8e4da;--line-strong:#d8d2c5;--ink:#24231f;--muted:#828077;--sub:#5e5c55;--accent:#c96442;--accent-hover:#b45537;--accent-soft:#f6e9e1;--green:#507944;--green-soft:#edf4e8;--amber:#a77726;--amber-soft:#fcf2db;--red:#aa463c;--red-soft:#f9e9e5;--blue:#4e748d;--shadow:0 2px 3px #302b1b03,0 4px 18px #302b1b05;--serif:Georgia,"Songti SC","Noto Serif SC","SimSun",serif;--sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;--mono:"Cascadia Code",Consolas,monospace}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible{outline:3px solid #c9644255;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.3}h1{font-size:32px;letter-spacing:-.03em}h2{font-size:21px}h3{font-size:18px}p{color:var(--sub)}small,.small{font-size:12px}.muted{color:var(--muted)}.literal{white-space:pre-wrap;overflow-wrap:anywhere}.mono,code{font-family:var(--mono);font-size:12px}.good{color:var(--green)}.bad{color:var(--red)}.nowrap{white-space:nowrap}.text-right{text-align:right}.grow{flex:1;min-width:0}
.application{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100dvh}.sidebar{height:100dvh;position:sticky;top:0;padding:29px 16px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--bg);z-index:20}.brand{display:flex;gap:12px;align-items:center;color:var(--ink);padding:0 8px 30px}.brand:hover{text-decoration:none}.brand svg{width:36px;height:36px;flex:none;color:var(--accent)}.brand strong{font-family:var(--serif);font-size:21px;font-weight:500}.brand small{display:block;font-size:9px;color:var(--muted);letter-spacing:.11em;margin-top:1px}nav{display:flex;flex-direction:column;gap:5px}nav a{display:flex;gap:12px;align-items:center;padding:10px 13px;color:var(--sub);border-radius:9px;font-size:14px}nav a:hover{background:var(--sunk);text-decoration:none}nav a.active{background:var(--accent-soft);color:var(--accent-hover);font-weight:600}nav svg{width:18px;height:18px;flex:none}nav .nav-label{margin:16px 13px 4px;font-size:10px;color:var(--muted);letter-spacing:.13em}.sidebar-bottom{margin-top:auto;padding:28px 12px 0}.connection{display:flex;gap:9px;align-items:center;font-size:12px}.dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--muted)}.dot.online{background:var(--green)}.dot.error{background:var(--red)}.sidebar-meta{border-top:1px solid var(--line);margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.workspace{min-width:0}.topbar{height:72px;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:0 34px}.topbar-label{font-size:12px;color:var(--muted)}.topbar-actions,.actions,.row{display:flex;align-items:center;gap:10px}.row.wrap,.actions{flex-wrap:wrap}.user-button{border:0;background:none;display:flex;gap:9px;align-items:center;padding:5px 0 5px 8px;font-size:13px}.avatar{display:grid;place-items:center;width:29px;height:29px;border:1px solid var(--line);border-radius:50%;background:var(--sunk);font-size:12px}main{padding:8px 34px 44px;max-width:1720px;margin:auto}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:27px}.page-heading p{margin-top:9px;font-size:13px;color:var(--muted)}.spark{font-family:var(--sans);font-size:30px;font-weight:400;color:var(--accent)}.page-heading .actions{padding-top:5px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:7px 15px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);color:var(--ink);font-weight:500;font-size:13px;white-space:nowrap;text-decoration:none}.button:hover{background:#f7f5ef;text-decoration:none}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:var(--accent-hover)}.button.quiet{background:transparent;border-color:transparent;color:var(--sub)}.button.danger{color:var(--red);border-color:#e9c8c2}.button.small-button{min-height:30px;font-size:12px;padding:4px 10px}.icon-button{display:grid;place-items:center;border:0;background:transparent;width:32px;height:32px;font-size:21px;border-radius:8px;color:var(--muted)}.icon-button:hover{background:var(--sunk);color:var(--ink)}.mobile-menu,.sidebar-shade{display:none}
.card{background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px 0}.card-head p{margin-top:6px;font-size:12px;color:var(--muted)}.card-body{padding:20px 22px}#view>.card+.card,.stack>*+*{margin-top:20px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px;box-shadow:var(--shadow);display:flex;gap:14px;align-items:center;min-width:0}.stat-icon{width:43px;height:43px;background:#f5f3ed;color:var(--sub);border-radius:10px;display:grid;place-items:center;flex:none}.stat-icon svg{width:21px;height:21px}.stat label{font-size:12px;color:var(--sub)}.stat strong{display:block;font-size:28px;font-weight:600;line-height:1.3;font-variant-numeric:tabular-nums}.stat small{color:var(--muted);font-size:11px}.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:22px;align-items:start}.split>.stack{min-width:0}.subtle{background:var(--sunk)}.notice{border:1px solid var(--line);background:#f6f4ee;border-radius:9px;padding:12px 14px;font-size:12px;color:var(--sub)}.notice.warning{background:var(--amber-soft);border-color:#f0dfbb;color:#87632b}.notice.error{background:var(--red-soft);border-color:#edcfc8;color:var(--red)}.notice.success{background:var(--green-soft);border-color:#d9e6ce;color:var(--green)}.notice+form,form+.notice{margin-top:16px}.hint{font-size:12px;color:var(--muted);margin-top:6px}.field{display:block;min-width:0}.field>span:first-child,.field-label{display:block;font-size:12px;font-weight:600;color:var(--sub);margin-bottom:7px}.field+.field{margin-top:17px}.input{width:100%;background:#fff;border:1px solid var(--line-strong);border-radius:8px;padding:9px 11px;outline:none;transition:border-color .15s,box-shadow .15s;min-width:0}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #c9644215}.input::placeholder{color:#a19c91}.input:disabled{background:#f4f2ec;color:var(--muted)}textarea.input{resize:vertical;line-height:1.75;display:block}.prompt-input{min-height:330px}.keyword-input{min-height:190px;font-family:var(--mono);font-size:13px}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.fields>.field{margin:0}.full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center;margin-top:22px;flex-wrap:wrap}.check{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--sub);cursor:pointer}.check input{accent-color:var(--accent);margin-top:5px;width:15px;height:15px;flex:none}.switch{display:flex;gap:10px;align-items:center;font-size:13px;cursor:pointer}.switch input{appearance:none;width:35px;height:20px;border-radius:20px;background:#d7d3c9;position:relative;flex:none;transition:.15s;cursor:pointer}.switch input:after{content:"";position:absolute;width:14px;height:14px;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0001;transition:.15s}.switch input:checked{background:var(--accent)}.switch input:checked:after{left:18px}.filterbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.filterbar .input{width:auto;min-width:140px;max-width:100%}.filterbar .search{flex:1;min-width:200px}.chips{display:flex;gap:7px;flex-wrap:wrap}.chip{background:#fff;border:1px solid var(--line);padding:6px 13px;border-radius:8px;font-size:12px;color:var(--sub)}.chip.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:20px;padding:3px 9px;background:var(--sunk);color:var(--sub);font-size:11px;white-space:nowrap}.badge.green{background:var(--green-soft);color:var(--green)}.badge.orange{background:var(--accent-soft);color:var(--accent-hover)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.blue{background:#edf2f6;color:var(--blue)}.table-hint{display:none}.table-scroll{overflow:auto;max-width:100%;border-radius:8px}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-weight:500;color:var(--sub);background:#f6f4ef;padding:11px 13px;white-space:nowrap}th:first-child{border-radius:8px 0 0 8px}th:last-child{border-radius:0 8px 8px 0}td{padding:14px 13px;border-bottom:1px solid #efede7;vertical-align:middle;max-width:300px}tr:last-child td{border-bottom:0}td strong{font-size:13px;font-weight:500}td small{display:block;margin-top:4px;color:var(--muted);overflow-wrap:anywhere}td .actions{gap:5px}.meter{height:6px;background:#eceae4;border-radius:6px;overflow:hidden;width:130px;max-width:100%;margin:7px 0}.meter i{display:block;height:100%;border-radius:inherit;background:#91b77f}.metrics{display:flex;gap:10px;font-size:10px;color:var(--muted)}.mini-list{display:flex;flex-direction:column;gap:12px}.mini-item{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.mini-item:last-child{border:0;padding-bottom:0}.empty,.loading,.error-state{padding:50px 22px;text-align:center;color:var(--muted)}.empty .empty-symbol{font-size:34px;color:#bdb4a3;margin-bottom:12px}.empty h3,.error-state h3{color:var(--sub);margin-bottom:8px}.empty p,.error-state p{font-size:13px;max-width:450px;margin:0 auto 18px;overflow-wrap:anywhere}.loading{display:flex;justify-content:center;align-items:center;gap:10px}.spinner{display:inline-block;width:17px;height:17px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.section-gap{margin-top:22px}.share-bar{display:flex;overflow:hidden;border-radius:8px;height:34px;font-size:12px;text-align:center;line-height:34px;background:var(--sunk)}.share-bar .server{background:var(--accent);color:#fff}.share-control{width:100%;accent-color:var(--accent);margin:18px 0 4px}.share-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--sub)}.quote{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.8;background:#f7f6f2;padding:16px;border:1px solid var(--line);border-radius:9px;max-height:55vh;overflow:auto;margin:0}
.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.template{position:relative;overflow:hidden}.template .preview{height:205px;background:#f0eee8;overflow:hidden;position:relative;border-bottom:1px solid var(--line)}.template iframe{width:1200px;height:780px;transform:scale(.35);transform-origin:top left;pointer-events:none;border:0;background:#fff}.preview-overlay{position:absolute;inset:0;border:0;background:transparent;cursor:zoom-in}.preview-overlay:focus-visible{outline-offset:-4px}.template .status-pin{position:absolute;top:12px;left:12px;z-index:1;box-shadow:0 1px 3px #0001}.template .template-select{position:absolute;top:12px;right:12px;width:20px;height:20px;z-index:2;accent-color:var(--accent)}.template-info{padding:15px 17px}.template-info h3{font-size:17px;overflow-wrap:anywhere;white-space:pre-wrap}.template-info .template-id{font-size:10px;color:var(--muted);font-family:var(--mono);display:block;margin-top:3px}.template-info p{font-size:11px;color:var(--muted);margin-top:9px;overflow-wrap:anywhere}.template-info .actions{margin-top:13px;justify-content:flex-end}.prompt-list{display:flex;flex-direction:column;gap:8px}.prompt-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:8px}.prompt-item.active{border-color:#dfad99;background:#fcf8f4}.prompt-item small{display:block;color:var(--muted);margin-top:3px}.definition{display:grid;grid-template-columns:105px minmax(0,1fr);gap:12px;font-size:12px}.definition dt{color:var(--muted)}.definition dd{margin:0;overflow-wrap:anywhere}.limit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.limit{padding:13px;background:#f6f4ef;border-radius:8px;text-align:center}.limit b{display:block;font-size:22px;font-weight:500}.limit span{font-size:11px;color:var(--muted)}details summary{color:var(--sub);cursor:pointer;font-size:12px}details pre{white-space:pre-wrap;word-break:break-word;max-height:260px;overflow:auto;margin:8px 0 0;font-size:11px}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 20% 0%,#f3e8db66,transparent 60%),var(--bg)}.auth-card{width:min(440px,100%);padding:34px;background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:0 12px 45px #42301808}.auth-card .brand{padding:0 0 25px}.auth-card h1{font-size:26px;margin-bottom:9px}.auth-card>p{font-size:13px;margin-bottom:24px}.auth-card .button.primary{width:100%;margin-top:22px}.form-error{background:var(--red-soft);color:var(--red);font-size:12px;border-radius:7px;padding:10px 12px;margin-top:14px;overflow-wrap:anywhere}.form-error:empty{display:none}dialog{padding:0;border:1px solid var(--line);border-radius:14px;width:min(620px,calc(100% - 32px));max-height:90dvh;background:var(--surface);color:var(--ink);box-shadow:0 24px 90px #26201830;overflow:auto}dialog::backdrop{background:#29261c66;backdrop-filter:blur(3px)}dialog.wide{width:min(1200px,calc(100% - 32px))}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px 24px 0}.modal-body{padding:20px 24px 24px}.modal-head h2{font-size:23px;overflow-wrap:anywhere}.modal-head p{font-size:12px;color:var(--muted);margin-top:6px}.modal-preview{height:62vh;min-height:300px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}.token-box{font-family:var(--mono);font-size:12px;word-break:break-all;background:var(--sunk);border:1px solid var(--line);padding:16px;border-radius:8px;margin:15px 0;user-select:all}.toasts{position:fixed;right:24px;bottom:24px;display:flex;flex-direction:column;gap:9px;max-width:min(420px,calc(100vw - 32px));z-index:100}.toast{padding:12px 17px;border:1px solid #ded8cb;background:#fffdf8;box-shadow:0 5px 25px #0001;border-radius:9px;font-size:13px;overflow-wrap:anywhere}.toast.error{border-color:#e6b9b1;color:var(--red)}.toast.success{border-color:#cfdcc5;color:var(--green)}
@media(min-width:1700px){.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){.application{grid-template-columns:205px minmax(0,1fr)}main{padding:8px 24px 36px}.topbar{padding:0 24px}.split{grid-template-columns:minmax(0,1fr) minmax(290px,.9fr);gap:16px}.stat{padding:15px;gap:10px}.stat-icon{display:none}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{gap:15px}h1{font-size:29px}}
@media(max-width:960px){.split{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{flex-wrap:wrap}.topbar-label{display:none}.topbar{justify-content:flex-end}}
@media(max-width:720px){.application{display:block}.sidebar{position:fixed;left:0;transform:translateX(-100%);width:235px;transition:transform .2s}.application.menu-open .sidebar{transform:translateX(0)}.sidebar-shade{position:fixed;inset:0;background:#24231f60;border:0;z-index:19}.application.menu-open .sidebar-shade{display:block}.mobile-menu{display:grid}.topbar{height:62px;padding:0 17px;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:18px}main{padding:0 16px 30px}.page-heading{margin-bottom:20px;gap:15px}h1{font-size:27px}.page-heading p{font-size:12px}.card-head{padding:18px 17px 0}.card-body{padding:17px}.stats{gap:10px;margin-bottom:17px}.stat{padding:13px 15px}.stat strong{font-size:25px}.stat small{font-size:10px}.library-grid{grid-template-columns:1fr}.template .preview{height:220px}.filterbar{gap:8px}.filterbar .input{flex:1;min-width:130px}.fields{gap:14px}.form-actions .button{flex:1}.card-head{align-items:flex-start}.card-head h2{font-size:19px}.auth-card{padding:27px}.modal-head{padding:18px 18px 0}.modal-body{padding:17px 18px 20px}.toasts{right:16px;bottom:16px}.definition{grid-template-columns:90px minmax(0,1fr)}.topbar-actions{gap:3px}.table-scroll{margin-right:-4px}td,th{padding:12px 10px}.limit-grid{gap:6px}.limit{padding:11px 6px}.template-info h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

@media(max-width:720px){.table-hint{display:block;margin:0 0 10px;color:var(--muted);font-size:11px}.table-scroll{overscroll-behavior-x:contain;scrollbar-width:thin}.table-scroll table{min-width:800px}.table-scroll th,.table-scroll td{min-width:120px}.table-scroll th:first-child,.table-scroll td:first-child{min-width:180px}}
