@font-face{font-family:Komika;src:url("/assets/fonts/KOMTXTKI.ttf") format("truetype");font-display:swap}
:root{color-scheme:dark;--bg:#0d131c;--panel:#17222e;--line:#2b3b4e;--text:#eef3fa;--muted:#a2b3c9;--green:#73e0af;--purple:#c7acff;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;background:var(--bg);color:var(--text)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:1px solid var(--line);border-radius:12px;background:#233247;color:var(--text);padding:10px 15px;font-weight:650}button:hover{border-color:var(--green)}button.primary{background:var(--green);color:#08241b;border-color:transparent}button.danger{color:#ffb6ba;border-color:#82434c}button:disabled{opacity:.55;cursor:wait}a{color:var(--green)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--purple);outline-offset:3px}input,select,textarea{width:100%;min-height:46px;background:#0e1722;color:var(--text);border:1px solid #4a5e77;border-radius:10px;padding:11px}textarea{resize:vertical;min-height:110px}label{display:block;color:var(--muted);font-size:.92rem;margin:10px 0 6px}label.check{display:flex;align-items:center;gap:12px;min-height:44px}input[type=checkbox]{width:22px;min-height:22px;flex-shrink:0;accent-color:var(--green)}
header{height:78px;background:#111a24eF;backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:8px max(18px,env(safe-area-inset-left));gap:16px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font-size:1.04rem;letter-spacing:.03em}.brand img{width:58px;height:58px}.brand strong{color:var(--green)}#connection{margin-left:auto;font-size:.8rem;color:var(--muted)}#menu-button{font-size:1.3rem}
.layout{max-width:1280px;margin:auto;display:flex;min-height:calc(100dvh - 78px)}nav{width:215px;flex-shrink:0;padding:24px 12px;border-right:1px solid var(--line)}nav button{display:block;width:100%;text-align:left;background:transparent;border:0;margin:3px 0;color:var(--muted)}nav button[aria-current=page]{background:#243a3b;color:var(--green)}main{padding:30px;flex:1;min-width:0;padding-bottom:150px}h1{font-size:clamp(1.7rem,5vw,2.4rem);margin:0 0 8px;letter-spacing:-.04em}h2{font-size:1.2rem;margin:0 0 12px}h3{margin:8px 0;font-size:1.04rem}p{line-height:1.55;overflow-wrap:anywhere}.subtle,.meta{color:var(--muted);font-size:.9rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;color:var(--green);font-weight:750}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;margin:12px 0;overflow-wrap:anywhere}.card.hero{background:linear-gradient(120deg,#233a42,#25223d);padding:26px}.row{display:flex;gap:12px;align-items:center;min-width:0}.row.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.avatar{width:64px;height:64px;flex-shrink:0;object-fit:contain}.avatar.large{width:160px;height:160px;margin:auto;display:block}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat{font-size:2rem;color:var(--green);font-weight:750}.chip{font-size:.75rem;padding:4px 8px;border-radius:20px;background:#2c3450;color:#dccfff;display:inline-block}.online{color:var(--green)}.auth{max-width:430px;margin:20px auto}.auth .logo{width:130px;display:block;margin:auto}.auth form{margin-top:22px}.auth button{width:100%;margin-top:12px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tabs button.active{border-color:var(--green);color:var(--green)}.empty{text-align:center;padding:30px 12px;color:var(--muted)}.error{color:#ffb6ba;white-space:pre-wrap}#notice{position:fixed;left:50%;transform:translateX(-50%);top:84px;max-width:calc(100% - 24px);z-index:50;padding:0;border-radius:12px;background:#31465a;box-shadow:0 8px 25px #0005}#notice:not(:empty){padding:12px 18px}form .primary{margin-top:14px}.message{white-space:pre-wrap}.message.system{border-left:3px solid var(--purple)}.spacer{margin-top:22px}.hidden,[hidden]{display:none!important}
dialog{width:min(580px,calc(100% - 24px));max-height:calc(100dvh - 36px);padding:22px;border-radius:20px;background:var(--panel);color:var(--text);border:1px solid var(--line);overflow:auto}dialog::backdrop{background:#02060cbb;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-head h2{margin:0}.dialog-head button{font-size:1.2rem}#mascot{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));right:12px;z-index:20;display:flex;align-items:end;pointer-events:none}#mascot button{pointer-events:auto}#mascot-toggle{background:transparent;border:0;padding:0;width:88px;height:88px}#mascot canvas{width:88px;height:88px;filter:drop-shadow(0 5px 9px #0008)}.mascot-bubble{position:absolute;right:84px;bottom:28px;width:min(270px,calc(100vw - 120px));background:#fff7e2;color:#251830;border:3px solid #291c38;box-shadow:0 0 0 2px #fff;border-radius:20px;padding:10px 30px 10px 14px;pointer-events:auto}.mascot-bubble p{margin:0;font-size:.88rem;font-family:Komika,system-ui,sans-serif}.mascot-bubble button{position:absolute;right:2px;top:2px;min-height:30px;padding:0 7px;background:transparent;color:#251830;border:0}details summary{cursor:pointer;padding:12px 0;color:var(--purple)}
.search-form input{flex:1;min-width:0;width:auto}.search-form button{flex-shrink:0;white-space:nowrap;overflow-wrap:normal}
.unread-count{display:inline-block;background:var(--green);color:#08241b;border-radius:20px;min-width:24px;padding:1px 6px;text-align:center;margin-left:6px}.thread-link{width:100%;text-align:left;overflow-wrap:anywhere}.sent-message{border-left:3px solid var(--green);margin-left:20px}.thread-compose{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--line);padding:10px 0 16px}.thread-compose textarea{min-height:70px}#thread-messages .avatar{width:40px;height:40px}#thread-messages .card{padding:12px}
@media(min-width:861px){#menu-button{display:none}nav[hidden]{display:block!important}}
@media(max-width:860px){main{padding:22px 16px 140px}nav{position:fixed;top:78px;bottom:0;left:0;z-index:30;background:#111a24;overflow:auto;box-shadow:8px 0 25px #0008;width:min(280px,85vw);padding-bottom:env(safe-area-inset-bottom)}header{gap:8px}.brand{font-size:.94rem}.brand img{width:48px;height:48px}#connection{font-size:.72rem}.card{padding:15px}.grid{gap:8px}.stat{font-size:1.7rem}}
@media(prefers-reduced-motion:no-preference){.card{animation:appear .2s ease-out}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
