:root{color:#1d252f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#e9eef2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#e9eef2;min-width:1100px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed;opacity:.55}.login-page,.loading-page{background:linear-gradient(140deg,#2a58701f,#0000 36%),linear-gradient(320deg,#b44c361f,#0000 42%),#eef1f4;place-items:center;min-height:100vh;display:grid}.loading-page{font-size:28px;font-weight:750}.login-panel{background:#ffffffdb;border:1px solid #d7dde3;border-radius:8px;width:420px;padding:34px;box-shadow:0 24px 80px #141e281f}.login-panel h1{letter-spacing:0;margin:0;font-size:34px}.login-panel p{color:#66727d;margin:8px 0 28px}.mode-switch{background:#e6ebef;border-radius:8px;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 22px;padding:4px;display:grid}.mode-switch button{color:#52606d;background:0 0;border-radius:6px;height:38px;font-weight:750}.mode-switch button.active{color:#1d252f;background:#fff;box-shadow:0 3px 10px #141e2814}.hint-line{color:#66727d;background:#f7f9fa;border:1px solid #d7dde3;border-radius:6px;margin:-8px 0 18px;padding:10px 12px;font-size:14px;line-height:1.5}.login-panel label{color:#4b5864;gap:8px;margin-bottom:18px;font-size:14px;font-weight:650;display:grid}.login-panel input{color:#17212b;background:#fff;border:1px solid #cfd7df;border-radius:6px;outline:none;height:44px;padding:0 12px}.login-panel input:focus,.composer textarea:focus{border-color:#2f7da1;box-shadow:0 0 0 3px #2f7da129}.primary-button{color:#fff;background:#2f7da1;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 16px;font-weight:750;transition:background .14s,transform .14s,box-shadow .14s;display:inline-flex;box-shadow:0 8px 20px #2f7da12e}.primary-button:hover:not(:disabled){background:#286f91;transform:translateY(-1px);box-shadow:0 10px 24px #2f7da13d}.error-line,.composer-notice{color:#ad3327;background:#fff1ef;border:1px solid #f0c7c1;border-radius:6px;margin-bottom:14px;padding:9px 11px;font-size:14px}.board-page{background:#e9eef2;grid-template-rows:76px 1fr 178px;height:100vh;display:grid;position:relative}.topbar{background:#fcfdfef5;border-bottom:1px solid #c7d1dae6;grid-template-columns:1fr 280px auto;align-items:center;gap:26px;padding:0 34px;display:grid;box-shadow:0 8px 28px #25303d0f}.topbar h1{letter-spacing:0;margin:0;font-size:24px;line-height:1}.topbar h1+span{color:#65717d;margin-top:7px;font-size:14px;font-weight:650;display:inline-block}.storage{gap:7px;display:grid}.storage-label{color:#66727d;justify-content:space-between;font-size:12px;font-weight:700;display:flex}.storage-track{background:#dbe2e8;border-radius:999px;height:8px;overflow:hidden}.storage-track div{background:linear-gradient(90deg,#2f7da1,#629d68);height:100%}.top-actions,.composer-actions,.bubble-actions{align-items:center;gap:10px;display:flex}.top-actions button,.composer-actions button,.bubble-actions button{color:#344250;background:#e7edf1;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:0 12px;transition:background .14s,color .14s,transform .14s;display:inline-flex}.top-actions button:hover,.composer-actions button:hover,.bubble-actions button:hover{background:#dce5eb;transform:translateY(-1px)}.message-list{background:linear-gradient(#ffffff57,#fff0),#e9eef2;padding:30px 46px 36px;overflow-y:auto}.empty-state{color:#7b8792;place-content:center;justify-items:center;gap:12px;height:100%;display:grid}.message-row{margin:16px 0;display:flex}.message-row.own{justify-content:flex-end}.message-row.other{justify-content:flex-start}.message-stack{min-width:240px;max-width:58%}.sender-name{color:#61707d;margin:0 0 7px 6px;font-size:13px;font-weight:800}.bubble{background:#fff;border:1px solid #d2dbe3;border-radius:8px;padding:14px 15px 42px;position:relative;box-shadow:0 10px 28px #1d252f14}.bubble:before{content:"";border:inherit;background:inherit;width:10px;height:10px;position:absolute;bottom:14px;transform:rotate(45deg)}.other .bubble{background:#fff8ed;border-color:#ead7bb;box-shadow:0 10px 28px #56452b1a}.other .bubble:before{border-top:0;border-right:0;left:-6px}.own .bubble{background:#d9f0f3;border-color:#8cc8d0;box-shadow:0 10px 28px #225d6c1f}.own .bubble:before{border-bottom:0;border-left:0;right:-6px}.message-text{white-space:pre-wrap;overflow-wrap:anywhere;color:#17212b;margin:0;line-height:1.62}.image-preview{background:0 0;border-radius:6px;max-width:520px;max-height:360px;padding:0;display:block;overflow:hidden}.image-preview img{object-fit:contain;max-width:520px;max-height:360px;display:block}.file-preview{text-align:left;color:#22313f;background:#ffffff94;border:1px solid #bca07661;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:34px 1fr;align-items:center;gap:2px 10px;width:360px;padding:12px;display:grid}.own .file-preview{background:#ffffff75;border-color:#4d8f9a52}.upload-bubble{min-width:360px;padding-bottom:14px}.receive-placeholder{min-width:360px}.upload-title{color:#22313f;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.upload-title svg{color:#2f7da1}.upload-title span{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.upload-title small{color:#5f707c;font-weight:750}.upload-progress{background:#477b882e;border-radius:999px;height:8px;margin-top:14px;overflow:hidden}.upload-progress div{border-radius:inherit;background:linear-gradient(90deg,#2f7da1,#60a876);height:100%;transition:width .18s}.upload-meta{color:#52636f;justify-content:space-between;margin-top:8px;font-size:12px;font-weight:750;display:flex}.file-preview svg{color:#b44c36;grid-row:1/3}.file-preview span{text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.file-preview small{color:#6e7a85}.bubble-actions{z-index:1;position:absolute;bottom:9px;right:10px}.bubble-actions button{color:#566370;background:#ffffff8f;border:1px solid #6f7e8b24;width:31px;min-height:31px;padding:0;transition:background .14s,border-color .14s,color .14s,transform .14s}.bubble-actions button:hover{background:#ffffffe6;border-color:#40526233;transform:translateY(-1px)}.bubble-actions button.is-success{color:#2f7a45;background:#e7f5ec}.message-meta{color:#75828e;justify-content:flex-end;gap:10px;margin-top:7px;font-size:12px;font-weight:650;display:flex}.other .message-meta{justify-content:flex-start}.loading-line{color:#66727d}.drop-overlay{z-index:20;color:#245f7a;pointer-events:none;background:#eef6f9db;border:2px dashed #2f7da1;border-radius:8px;place-content:center;justify-items:center;gap:12px;font-size:18px;font-weight:800;display:grid;position:absolute;inset:88px 28px 194px}.toast{z-index:30;color:#1d252f;background:#fffffff5;border:1px solid #cfd7df;border-radius:8px;align-items:center;max-width:360px;min-height:42px;padding:0 16px;font-size:14px;font-weight:750;display:flex;position:absolute;bottom:194px;right:28px;box-shadow:0 14px 38px #141e2824}.toast.success{color:#2f6f42;border-color:#b8d8c2}.toast.error{color:#ad3327;border-color:#efc0b8}.composer{background:#fcfdfef7;border-top:1px solid #c7d1dae6;grid-template-columns:1fr auto;gap:12px 16px;padding:18px 34px;display:grid;box-shadow:0 -10px 32px #25303d0f}.composer-notice{grid-column:1/3;margin:0}.composer textarea{resize:none;color:#17212b;background:#fbfcfd;border:1px solid #c9d3dc;border-radius:6px;outline:none;min-height:112px;padding:13px 15px;box-shadow:inset 0 1px #fffc}.composer-actions{align-self:end}
