:root{--navy: #0B0B35;--ink: #26264A;--muted: #5A5A78;--faint: #9797B0;--line: #E4E5F0;--line-2: #EEEFF6;--bg: #F1F2F8;--panel: #FFFFFF;--pink: #C4147A;--pink-2: #FF4D97;--pink-bg: #FDF0F7;--violet: #8B32EE;--cyan: #12C8F5;--ok: #0A6B4F;--ok-bg: #E6F4EF;--warn: #8A5308;--warn-bg: #FBF0E1;--bad: #B02A37;--bad-bg: #FDECEE;--info: #3730A3;--info-bg: #EAE9FB;--radius: 12px;--shadow: 0 1px 2px rgba(11, 11, 53, .04), 0 8px 24px -16px rgba(11, 11, 53, .25);--mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);font-family:Plus Jakarta Sans,system-ui,sans-serif;color:var(--navy);font-size:13.5px;-webkit-font-smoothing:antialiased}a{color:var(--pink);text-decoration:none}a:hover{color:var(--pink-2)}button,input,select,textarea{font:inherit;color:inherit}::selection{background:#fbd9ea;color:#8a0e55}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.faint{color:var(--faint)}.nowrap{white-space:nowrap}.shell{display:flex;min-height:100vh}.side{width:244px;flex:none;background:#fcfcfe;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.side .brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px}.side .brand img{height:22px}.side .brand .tag{margin-left:auto;font-size:9px;font-weight:800;letter-spacing:.08em;color:var(--pink);background:#c4147a1a;padding:3px 7px;border-radius:6px}.side nav{flex:1;overflow:auto;padding:6px 10px 12px;border-top:1px solid var(--line-2)}.side .group{font-size:9.5px;font-weight:800;letter-spacing:.13em;color:var(--faint);padding:14px 10px 6px}.side .item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;background:transparent;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:600;font-size:13px;text-align:left}.side .item:hover{background:#f4f4fa;color:var(--navy)}.side .item.on{background:var(--pink-bg);color:var(--pink)}.side .item svg{flex:none}.side .item .count{margin-left:auto;font-size:10.5px;font-weight:800;background:var(--pink);color:#fff;border-radius:99px;padding:1px 7px}.side .me{padding:12px 14px;border-top:1px solid var(--line-2);display:flex;align-items:center;gap:10px}.avatar{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--pink),var(--violet));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11px;flex:none}.main{flex:1;min-width:0;display:flex;flex-direction:column}.top{height:60px;display:flex;align-items:center;gap:14px;padding:0 28px;border-bottom:1px solid var(--line);background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.top h1{margin:0;font-size:18px;font-weight:750;letter-spacing:-.02em}.top .crumb{color:var(--faint);font-weight:600}.content{padding:24px 28px 60px;max-width:1360px;width:100%}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.panel+.panel{margin-top:18px}.grid>.panel+.panel,.media-grid>*+*{margin-top:0}.panel-h{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line-2)}.panel-h h2{margin:0;font-size:14.5px;font-weight:750}.panel-h .sub{color:var(--muted);font-size:12px}.panel-b{padding:18px 20px}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1100px){.g4,.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}.side{display:none}.content{padding:18px 14px}}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{flex:1}.stack>*+*{margin-top:14px}.kpi{padding:18px 20px}.kpi .label{font-size:10.5px;font-weight:800;letter-spacing:.12em;color:var(--faint)}.kpi .value{font-size:28px;font-weight:800;letter-spacing:-.03em;margin-top:8px}.kpi .kpi-note{color:var(--muted);font-size:12px;margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:10px;border:1.5px solid var(--line);background:#fff;cursor:pointer;font-weight:700;font-size:12.5px;white-space:nowrap;transition:background .15s,border-color .15s,transform .1s}.btn:hover{border-color:#cbcee3;background:#fafafd}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--pink);border-color:var(--pink);color:#fff}.btn.primary:hover{background:#ae0f6c}.btn.dark{background:var(--navy);border-color:var(--navy);color:#fff}.btn.danger{color:var(--bad);border-color:#f1c8cd}.btn.danger:hover{background:var(--bad-bg)}.btn.ghost{border-color:transparent;background:transparent}.btn.sm{height:30px;padding:0 10px;font-size:12px;border-radius:8px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label{font-size:11.5px;font-weight:650;color:var(--ink)}.field .hint{font-size:11.5px;color:var(--faint)}.input,.select,.textarea{width:100%;height:38px;padding:0 12px;border-radius:10px;border:1.5px solid #DCDDEC;background:#fafbfe;font-size:13px;outline:none;transition:border-color .15s,background .15s}.textarea{height:auto;min-height:84px;padding:10px 12px;line-height:1.55;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--pink);background:#fff}.input.err,.textarea.err{border-color:#e0808c}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:12.5px}.switch{position:relative;width:38px;height:22px;border-radius:99px;background:#d5d7e6;border:none;cursor:pointer;flex:none;transition:background .2s;padding:0}.switch:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.switch.on{background:var(--pink)}.switch.on:after{transform:translate(16px)}.seg{display:inline-flex;background:#f2f3fa;border-radius:10px;padding:3px;gap:2px}.seg button{border:none;background:transparent;padding:6px 12px;border-radius:8px;cursor:pointer;font-weight:700;font-size:12px;color:var(--muted)}.seg button.on{background:#fff;color:var(--navy);box-shadow:0 1px 3px #0b0b351f}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:99px;font-size:11px;font-weight:700;white-space:nowrap;background:#f2f3fa;color:var(--muted)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.pink{background:#fff0f7;color:var(--pink)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:10.5px;font-weight:800;letter-spacing:.1em;color:var(--faint);padding:10px 14px;border-bottom:1px solid var(--line-2);background:#fbfbfe;white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}.table tr:last-child td{border-bottom:none}.table tr.click{cursor:pointer}.table tr.click:hover td{background:#fbfbfe}.table .num{text-align:right;font-family:var(--mono);font-weight:600}.empty{padding:34px 20px;text-align:center;color:var(--muted)}.thumb{width:44px;height:44px;border-radius:9px;border:1px solid var(--line);background:#fff center/contain no-repeat;flex:none}.thumb.lg{width:96px;height:72px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0b356b;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow:auto;animation:fade .15s ease}.modal{width:100%;max-width:620px;background:#fff;border-radius:18px;box-shadow:0 30px 80px -30px #0b0b3599;animation:pop .18s cubic-bezier(.2,.8,.2,1)}.modal.wide{max-width:900px}.modal-h{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line-2)}.modal-h h3{margin:0;font-size:16px;font-weight:750}.modal-b{padding:20px 22px}.modal-f{display:flex;gap:10px;justify-content:flex-end;padding:14px 22px;border-top:1px solid var(--line-2);background:#fbfbfe;border-radius:0 0 18px 18px}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(640px,100vw);background:#fff;z-index:101;box-shadow:-30px 0 80px -30px #0b0b3580;display:flex;flex-direction:column;animation:slide .2s cubic-bezier(.2,.8,.2,1)}.drawer .modal-b{flex:1;overflow:auto}.toasts{position:fixed;right:20px;bottom:20px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{background:var(--navy);color:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 16px 40px -16px #0b0b35b3;max-width:380px;animation:pop .2s ease}.toast.bad{background:#8c1d2b}.toast b{display:block;font-size:13px}.toast span{display:block;font-size:12px;opacity:.8;margin-top:2px}.errors{background:var(--bad-bg);border:1px solid #F4CDD2;color:#8c2028;border-radius:12px;padding:11px 14px;font-size:12.5px}.errors ul{margin:6px 0 0;padding-left:18px}.note{background:#f7f8fc;border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;color:var(--muted);font-size:12.5px;line-height:1.55}.note.ok{background:var(--ok-bg);border-color:#bce0d2;color:var(--ok)}.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 14px;font-size:13px}.kv dt{color:var(--muted);font-weight:600}.kv dd{margin:0;font-weight:600;word-break:break-word}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:0 0 14px 18px;font-size:12.5px}.timeline li:before{content:"";position:absolute;left:3px;top:5px;width:7px;height:7px;border-radius:50%;background:var(--pink)}.timeline li:after{content:"";position:absolute;left:6px;top:14px;bottom:0;width:1px;background:var(--line)}.timeline li:last-child:after{display:none}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs button{border:none;background:transparent;padding:10px 14px;font-weight:700;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:13px}.tabs button.on{color:var(--pink);border-bottom-color:var(--pink)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(40% 50% at 20% 30%,rgba(255,77,151,.18),transparent 70%),radial-gradient(40% 50% at 80% 70%,rgba(139,50,238,.16),transparent 70%),#fff;padding:20px}.login .card{width:100%;max-width:400px}.spin{width:16px;height:16px;border-radius:50%;border:2px solid rgba(196,20,122,.25);border-top-color:var(--pink);animation:spin .8s linear infinite;display:inline-block}.chat-answer{white-space:pre-wrap;line-height:1.6}.preview-frame{width:100%;height:72vh;border:1px solid var(--line);border-radius:14px;background:#fff}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.media-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;display:flex;flex-direction:column}.media-card .img{height:120px;background:#f7f8fc center/contain no-repeat;border-bottom:1px solid var(--line-2)}.media-card .meta{padding:9px 11px;font-size:11.5px}.pick{cursor:pointer}.pick:hover{border-color:var(--pink)}.modified{box-shadow:inset 3px 0 0 var(--pink)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}@keyframes slide{0%{transform:translate(40px);opacity:.5}to{transform:none;opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}
