:root{--line:#06c755;--line-dark:#049b43;--ink:#15211a;--muted:#69756d;--paper:#f6f8f6;--panel:#fff;--rule:#dde4df;--soft:#edf8f0;--shadow:0 18px 50px rgba(19,43,28,.12);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-size:16px}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--paper)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(6,199,85,.24);outline-offset:2px}.eyebrow{margin:0 0 .35rem;font-size:.75rem;letter-spacing:.14em;font-weight:800;color:var(--line-dark)}.muted{color:var(--muted)}.brand-mark{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.75rem;background:var(--line);color:white;font-weight:900;box-shadow:0 7px 18px rgba(6,199,85,.24)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at 15% 20%,rgba(6,199,85,.16),transparent 28rem),linear-gradient(135deg,#f8fbf8,#eaf3ed)}.login-card{width:min(100%,28rem);padding:2.5rem;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.8);border-radius:1.5rem;box-shadow:var(--shadow);backdrop-filter:blur(12px)}.login-card h1{font-size:clamp(2.15rem,7vw,3.35rem);line-height:.96;letter-spacing:-.055em;margin:.75rem 0 2rem}.login-card label,.dialog label{display:grid;gap:.5rem;margin:1rem 0;font-size:.875rem;font-weight:700}.login-card label span{font-weight:500;color:var(--muted)}input,select{width:100%;border:1px solid var(--rule);border-radius:.8rem;background:#fff;padding:.8rem .9rem;color:var(--ink)}.primary{border:0;border-radius:.85rem;background:var(--line);color:#fff;font-weight:800;padding:.85rem 1rem}.primary:hover{background:var(--line-dark)}.login-card .primary{width:100%;margin-top:.7rem}.error{min-height:1.25rem;color:#ae1c35;font-size:.875rem}
.app-shell{height:100vh;display:grid;grid-template:4.35rem 1fr/21rem 1fr;grid-template-areas:"top top" "side main";overflow:hidden}.topbar{grid-area:top;display:flex;align-items:center;gap:1rem;padding:.7rem 1.1rem;border-bottom:1px solid var(--rule);background:rgba(255,255,255,.92);backdrop-filter:blur(15px);z-index:5}.brand{display:flex;align-items:center;gap:.65rem;color:var(--ink);font-weight:900;text-decoration:none;font-size:1.1rem}.global-search{flex:1;max-width:45rem;margin:auto;display:flex;align-items:center;gap:.7rem;padding:0 .9rem;border:1px solid var(--rule);border-radius:1rem;background:#f8faf8}.global-search input{border:0;background:transparent;padding:.78rem 0;outline:none}.global-search kbd{border:1px solid var(--rule);border-bottom-width:2px;border-radius:.4rem;padding:.15rem .35rem;color:var(--muted);font-size:.7rem}.top-actions,.main-actions{display:flex;gap:.6rem;align-items:center}.quiet,.icon-button{border:1px solid var(--rule);background:#fff;color:var(--ink);border-radius:.8rem;padding:.66rem .85rem;font-weight:700}.icon-button{width:2.65rem;height:2.65rem;padding:0;display:grid;place-items:center;font-size:1.15rem}.icon-button.active{color:var(--line-dark);background:var(--soft);border-color:#bce8ca}
.sidebar{grid-area:side;border-right:1px solid var(--rule);background:#fff;display:flex;flex-direction:column;min-width:0}.side-head{display:flex;justify-content:space-between;align-items:center;padding:1.4rem 1rem .9rem}.side-head h2{margin:0;font-size:1.3rem}.chat-tools{display:grid;grid-template-columns:1fr 6rem;gap:.5rem;padding:0 1rem 1rem}.chat-tools input,.chat-tools select{padding:.65rem .75rem;background:var(--paper)}.chat-list{padding:0 .55rem 1rem;overflow:auto}.chat-list button{width:100%;border:0;background:transparent;text-align:left;padding:.85rem .8rem;border-radius:.9rem;display:grid;gap:.25rem;color:var(--ink)}.chat-list button:hover{background:var(--paper)}.chat-list button.active{background:var(--soft);box-shadow:inset 3px 0 var(--line)}.chat-list strong{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list small{font-size:.75rem;color:var(--muted);display:flex;justify-content:space-between;gap:.5rem}
.main{grid-area:main;overflow:auto;padding:1.65rem clamp(1rem,4vw,3rem) 3rem}.main-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;max-width:70rem;margin:0 auto}.main-head h1{margin:.1rem 0 .25rem;font-size:clamp(1.7rem,3vw,2.5rem);letter-spacing:-.035em}.main-head p{margin-bottom:0}.filters{max-width:70rem;margin:1.2rem auto;display:grid;grid-template-columns:repeat(4,minmax(8rem,1fr)) auto;gap:.65rem;align-items:end;padding:.8rem;background:#fff;border:1px solid var(--rule);border-radius:1rem}.filters label{display:grid;gap:.3rem;font-size:.72rem;font-weight:800;color:var(--muted)}.filters input,.filters select{padding:.58rem .65rem}.compact{padding:.65rem .9rem}.sync-notice{max-width:70rem;margin:0 auto 1rem;padding:.75rem 1rem;border-radius:.8rem;background:#fff8dc;color:#6a4c00;border:1px solid #f0dda0;font-size:.85rem}
.message-list{max-width:70rem;margin:auto;display:flex;flex-direction:column;gap:.85rem}.message{max-width:min(75%,48rem);align-self:flex-start;padding:.85rem 1rem;border:1px solid var(--rule);border-radius:.25rem 1rem 1rem 1rem;background:#fff;box-shadow:0 6px 18px rgba(25,39,30,.04)}.message.mine{align-self:flex-end;background:var(--soft);border-color:#c9ead3;border-radius:1rem .25rem 1rem 1rem}.message .meta{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;color:var(--muted);font-size:.72rem}.message .sender{font-weight:800;color:var(--ink)}.message p{margin:.55rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.message .file-name{font-weight:800;color:var(--line-dark)}.attachment{margin-top:.8rem;padding:.75rem;border-radius:.75rem;background:#fff;border:1px solid var(--rule);display:grid;grid-template-columns:1fr auto;gap:.25rem .8rem;align-items:center}.attachment small{color:var(--muted)}.attachment a{grid-column:2;grid-row:1/3;color:var(--line-dark);font-weight:800;text-decoration:none}.attachment video,.attachment audio{grid-column:1/-1;width:100%;margin-top:.5rem}.empty{padding:4rem 1rem;text-align:center;color:var(--muted)}.load-more{display:block;margin:1.5rem auto;border:1px solid var(--rule);background:#fff;border-radius:999px;padding:.75rem 1.2rem;font-weight:800}
.dialog{width:min(92vw,32rem);border:0;border-radius:1.2rem;padding:1.2rem;box-shadow:var(--shadow)}.dialog.wide{width:min(92vw,56rem)}.dialog::backdrop{background:rgba(14,25,18,.48);backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--rule);padding-bottom:.8rem}.dialog-head h2{margin:0}.attachment-list{display:grid;gap:.65rem;max-height:65vh;overflow:auto;margin:1rem 0}.library-file{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem;align-items:center;padding:.8rem;border:1px solid var(--rule);border-radius:.8rem}.library-file strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-file small{color:var(--muted)}.library-file a{color:var(--line-dark);font-weight:800;text-decoration:none}.mobile-only{display:none}.back-button{border:0;background:transparent;color:var(--line-dark);font-weight:800;padding:0 0 .5rem}
@media(max-width:850px){.app-shell{grid-template-columns:1fr;grid-template-areas:"top" "main"}.topbar{gap:.55rem}.brand>span:last-child,.top-actions .quiet,.global-search kbd{display:none}.mobile-only{display:grid}.sidebar{position:fixed;inset:4.35rem auto 0 0;width:min(88vw,22rem);z-index:4;transform:translateX(-102%);transition:transform .2s ease;box-shadow:var(--shadow)}body.menu-open .sidebar{transform:none}.main{padding:1.2rem .85rem 3rem}.filters{grid-template-columns:1fr 1fr}.filters .primary{grid-column:1/-1}.message{max-width:91%}.main-actions{flex-direction:column}.main-head{align-items:flex-start}.library-file{grid-template-columns:minmax(0,1fr) auto}.library-file a{grid-column:1/-1}}
@media(max-width:520px){.topbar{padding:.7rem}.global-search{padding-left:.65rem}.filters{grid-template-columns:1fr}.filters .primary{grid-column:auto}.main-actions{display:none}.login-card{padding:1.5rem}.message{max-width:96%}}
.attachment img{grid-column:1/-1;display:block;width:100%;max-height:34rem;margin-top:.5rem;object-fit:contain;border-radius:.55rem;background:#f4f7f4}
