:root{color:#213b36;font-synthesis:none;background:#f4f6f3;font-family:Inter,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}main{max-width:1100px;margin:0 auto;padding:48px 28px}header,.toolbar,.account{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}header{margin-bottom:40px}h1{letter-spacing:-.04em;margin:8px 0;font-size:clamp(28px,5vw,42px)}h2{margin-top:0}h3{overflow-wrap:anywhere}p{line-height:1.6}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#5a766c;font-size:11px;font-weight:700}button,.primary{color:#213b36;font:inherit;cursor:pointer;background:#fff;border:1px solid #c7d5ce;border-radius:8px;padding:11px 16px;text-decoration:none;display:inline-block}button:hover,.primary:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #83b3a6}.primary{color:#fff;background:#235e4f;border-color:#235e4f}.welcome,.create,.detail{background:#fff;border:1px solid #dce4de;border-radius:16px;padding:32px}.welcome{max-width:650px;margin:60px auto}form{flex-wrap:wrap;align-items:end;gap:16px;display:flex}.field{flex-direction:column;flex:1;gap:8px;font-size:14px;display:flex}input{width:100%;font:inherit;border:1px solid #b6c8be;border-radius:8px;padding:12px}.projects{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:24px;display:grid}article{background:#fff;border:1px solid #dce4de;border-radius:12px;padding:24px}.muted{color:#60756b;overflow-wrap:anywhere;font-size:14px}.toolbar{margin-bottom:28px}.status{font-size:13px}.saved{color:#286f4c}.conflict,.error{color:#913c28}.error{background:#fff3ec;border-radius:8px;margin:16px 0;padding:16px}.error button{margin:4px}.placeholder{background:#f9fbf8;border:1px dashed #b6c8be;border-radius:12px;margin-top:32px;padding:32px}.placeholder h2{margin-top:12px}dl{grid-template-columns:150px 1fr;gap:10px;display:grid}dd{margin:0}.danger-zone{border-top:1px solid #e4e9e4;margin-top:36px;padding-top:24px}.danger-zone button{margin-right:10px}.danger{color:#fff;background:#9c342d}@media (width<=600px){main{padding:24px 16px}.create,.detail,.welcome,.placeholder{padding:20px}form{flex-direction:column;align-items:stretch}}.collaboration-bar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:8px 0;font-size:12px;display:flex}.collaboration-bar button,.collaboration-bar summary{padding:5px 8px;font-size:12px}.collaboration-bar details,.notifications{position:relative}.collaboration-bar summary,.notifications summary{cursor:pointer}.online-list,.access-menu,.notification-list{z-index:3000;background:#fff;border:1px solid #cbd9ce;border-radius:8px;width:min(420px,85vw);max-height:60vh;padding:14px;position:absolute;top:100%;right:0;overflow:auto;box-shadow:0 8px 28px #16322122}.online-list{gap:8px;width:230px;display:grid}.access-menu>div{grid-template-columns:1fr auto auto;align-items:center;gap:6px;margin:10px 0;display:grid}.notification-list>div{border-bottom:1px solid #dce6df;padding:10px 0}.notification-list p{margin:5px 0}.notification-list button{margin-right:6px;padding:6px 10px}.control-request{background:#fff5d6;border-radius:8px;flex-shrink:0;padding:8px 12px;font-size:13px}.control-request button{margin-left:8px;padding:5px 10px}.modal-backdrop{z-index:5000;background:#162b2566;place-items:center;display:grid;position:fixed;inset:0}.role-dialog{background:#fff;border-radius:12px;width:min(480px,90vw);padding:24px}.role-dialog button{margin:12px 8px 0 0}.import-button{border:1px solid #c7d5ce;border-radius:8px;align-items:center;gap:12px;margin:16px 12px 0 0;padding:10px;display:inline-flex}.import-button input{max-width:250px;padding:4px}.project-menu-content{max-height:65vh;overflow:auto}.canvas-failure{flex:1;min-height:160px;padding:16px}.error-dialog{background:#fff;border-radius:12px;width:min(850px,94vw);max-height:90vh;padding:24px;overflow:auto}.error-dialog p{overflow-wrap:anywhere}.error-dialog textarea{white-space:pre;width:100%;font:12px monospace;overflow:auto}.error-dialog button{margin:8px 8px 0 0}
