:root{--ink:#17201d;--muted:#6b7772;--line:#dde4e1;--paper:#fff;--bg:#f5f7f6;--green:#1f6b50;--green-2:#dcefe7;--orange:#dc7c35;--blue:#386fa7;--red:#b64b4b;--shadow:0 18px 60px rgba(23,32,29,.12)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}body{margin:0}button,input,textarea,select{font:inherit;color:inherit}button,a{transition:.16s ease}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#152a23;color:#fff;padding:26px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-weight:850;letter-spacing:.08em}.brand-mark{width:34px;height:34px;border-radius:10px;background:#e8f64a;color:#152a23;display:grid;place-items:center;font-weight:950}.brand--large{color:var(--ink);justify-content:center;margin-bottom:34px}.brand--large .brand-mark{width:42px;height:42px}.workspace-label{margin:38px 12px 10px;color:#91a79f;font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:700}.project-nav{display:grid;gap:7px}.project-link{display:flex;align-items:center;gap:12px;padding:11px;border-radius:12px;color:#c8d4d0}.project-link:hover,.project-link.is-active{background:#264239;color:#fff}.project-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#d8eee5;color:#1f6b50;font-weight:900}.project-icon--blue{background:#dbe8f5;color:var(--blue)}.project-link span:last-child{display:grid;gap:2px}.project-link strong{font-size:14px}.project-link small,.user-chip small{font-size:11px;color:#91a79f}.sidebar-bottom{margin-top:auto;display:grid;gap:12px}.text-link{font-size:13px;color:#bfcec9;padding:8px 11px}.text-link:hover,.text-link.is-active{color:#fff}.user-chip{border-top:1px solid #2c443c;padding-top:18px;display:flex;gap:10px;align-items:center}.user-chip>span:last-child{display:grid}.avatar{width:36px;height:36px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#e8f64a;color:#1b3129;font-size:13px;font-weight:850}.avatar--small{width:28px;height:28px;font-size:11px}.logout{background:none;border:0;padding:0;color:#82968f;font-size:12px;cursor:pointer;text-align:left}.logout:hover{color:#fff}.main{max-width:1180px;width:100%;margin:0 auto;padding:54px 54px 90px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px}.eyebrow{margin:0 0 7px;text-transform:uppercase;color:var(--green);font-size:11px;letter-spacing:.14em;font-weight:850}.page-header h1,.auth-card h1{font-family:Georgia,serif;font-size:40px;line-height:1.05;margin:0 0 8px}.muted{color:var(--muted);margin:0;line-height:1.6}.button{border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px 17px;font-weight:750;cursor:pointer}.button:hover{transform:translateY(-1px);box-shadow:0 7px 20px rgba(20,45,36,.08)}.button--primary{background:var(--green);border-color:var(--green);color:#fff}.button--wide{width:100%}.button--small{padding:8px 13px;font-size:13px}.stats-row{display:flex;align-items:center;gap:25px;padding:17px 20px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:20px}.stat{display:flex;align-items:baseline;gap:7px;white-space:nowrap}.stat strong{font-size:21px}.stat span:last-child{font-size:12px;color:var(--muted)}.stat-dot{width:7px;height:7px;border-radius:50%;background:var(--orange)}.stat-dot--done{background:var(--green)}.progress{margin-left:auto;width:min(300px,30%);height:6px;background:#edf1ef;border-radius:10px;overflow:hidden}.progress span{display:block;height:100%;background:var(--green);border-radius:10px}.toolbar{display:flex;gap:18px;justify-content:space-between;align-items:center;margin-bottom:18px}.search{min-width:260px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:9px 12px;border-radius:10px}.search input{border:0;outline:0;width:100%;background:transparent}.filters{display:flex;background:#e9eeec;border-radius:10px;padding:3px}.filter{border:0;background:transparent;border-radius:8px;padding:7px 12px;font-size:12px;color:var(--muted);cursor:pointer}.filter.is-active{background:#fff;color:var(--ink);box-shadow:0 2px 8px rgba(20,35,30,.07)}.items-list{display:grid;gap:10px}.item-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;grid-template-columns:auto 1fr auto;gap:15px;align-items:center}.item-card:hover{border-color:#a8bdb5;transform:translateY(-1px);box-shadow:0 10px 28px rgba(23,32,29,.07)}.item-card.is-done{opacity:.64}.item-card.is-done .item-main>strong{text-decoration:line-through}.check-visual{width:30px;height:30px;border:2px solid #b9c8c2;border-radius:8px;display:grid;place-items:center;color:#fff;font-weight:900}.is-done .check-visual{background:var(--green);border-color:var(--green)}.item-main{display:grid;gap:5px;min-width:0}.item-main>strong{font-size:16px}.item-main>small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-meta{display:flex;gap:7px;align-items:center}.type,.priority,.badge{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:850;padding:4px 7px;border-radius:6px;background:var(--green-2);color:var(--green)}.type--task{background:#e2ebf5;color:var(--blue)}.type--note{background:#eee8f5;color:#75528f}.priority{background:#fff0e4;color:#ac5a1e}.byline{font-size:11px;color:#9aa5a1}.item-counts{display:flex;gap:12px;color:#77847f;font-size:12px}.empty{text-align:center;padding:70px 20px;background:#fff;border:1px dashed #c8d4cf;border-radius:16px}.empty>span{display:grid;place-items:center;margin:0 auto 16px;width:46px;height:46px;border-radius:50%;background:var(--green-2);color:var(--green);font-size:22px}.empty h2{font-family:Georgia,serif;margin:0 0 6px}.empty p{color:var(--muted);margin:0 0 22px}.flash{padding:12px 15px;border-radius:10px;background:#e1f1e9;color:#225d48;margin-bottom:20px;font-size:13px}.flash--error{background:#fae8e8;color:#8b3535}dialog{border:0;padding:0;border-radius:18px;box-shadow:var(--shadow);width:min(680px,calc(100vw - 30px))}dialog::backdrop{background:rgba(10,25,20,.55);backdrop-filter:blur(3px)}.dialog-form{padding:27px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.dialog-head h2{font-family:Georgia,serif;font-size:30px;margin:0}.icon-button{border:0;background:#eef2f0;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:24px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.span-2{grid-column:span 2}label{display:grid;gap:7px;font-weight:720;font-size:13px}input,textarea,select{width:100%;border:1px solid #ccd7d2;background:#fff;border-radius:9px;padding:10px 11px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(31,107,80,.1)}textarea{resize:vertical;line-height:1.5}.upload-zone{background:#f7f9f8;border:1px dashed #bdccc6;border-radius:12px;padding:15px}.upload-zone input{border:0;padding:0;background:transparent}.upload-zone span,label small{font-size:11px;color:var(--muted);font-weight:400}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.drawer-backdrop{position:fixed;inset:0;background:rgba(15,29,24,.4);z-index:20}.drawer{position:fixed;z-index:21;right:0;top:0;bottom:0;width:min(620px,100vw);background:#fff;box-shadow:-20px 0 70px rgba(20,30,26,.17);display:flex;flex-direction:column}.drawer-head{padding:26px 28px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.drawer-head h2{font-family:Georgia,serif;font-size:28px;line-height:1.15;margin:10px 0 0}.drawer-scroll{overflow:auto;flex:1}.drawer-section{padding:24px 28px;border-bottom:1px solid var(--line)}.description{line-height:1.7}.drawer-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.07em;margin:0 0 15px}.drawer-section h3 span{color:var(--muted)}.attachments{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 28px 24px}.attachment{border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:11px;color:var(--muted)}.attachment img{width:100%;height:125px;object-fit:cover;display:block}.attachment>span:last-child{display:block;padding:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-icon{height:100px;display:grid!important;place-items:center;background:#f4f6f5;color:var(--red);font-weight:900;font-size:20px}.vote-form{display:grid;gap:10px}.vote-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.vote{display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:9px;padding:10px 6px;cursor:pointer;font-size:12px}.vote input{display:none}.vote:has(input:checked){border-width:2px}.vote--agree:has(input:checked){border-color:var(--green);color:var(--green);background:#f1faf6}.vote--disagree:has(input:checked){border-color:var(--red);color:var(--red);background:#fff7f7}.vote--other:has(input:checked){border-color:var(--blue);color:var(--blue);background:#f5f9fd}.vote-summary{display:grid;gap:9px;margin-top:16px}.vote-summary>div{display:flex;gap:9px;align-items:center}.vote-summary>div>span:last-child{display:grid}.vote-summary small{font-size:11px;color:var(--muted)}.comments{display:grid;gap:16px}.comment{display:flex;gap:10px}.comment>div{flex:1}.comment strong{font-size:13px}.comment time{font-size:10px;color:#94a09c;margin-left:8px}.comment p{margin:4px 0 0;color:#4d5b56;font-size:13px;line-height:1.55}.comment-form{margin-top:18px;display:grid;justify-items:end;gap:8px}.done-bar{padding:15px 22px;border-top:1px solid var(--line);background:#f9fbfa}.done-button{width:100%;border:1px solid #b8c9c2;border-radius:12px;background:#fff;padding:12px 16px;display:grid;grid-template-columns:auto 1fr;column-gap:11px;text-align:left;cursor:pointer}.done-button>span{grid-row:span 2;width:32px;height:32px;border:2px solid #aac0b7;border-radius:8px;display:grid;place-items:center}.done-button strong{font-size:14px}.done-button small{font-size:11px;color:var(--muted)}.done-button.is-done{background:var(--green);color:#fff;border-color:var(--green)}.done-button.is-done>span{border-color:#fff}.done-button.is-done small{color:#c8e2d8}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 20% 20%,#e1f1e9,transparent 35%),radial-gradient(circle at 85% 80%,#e8edc4,transparent 30%),#f5f7f6}.auth-card{width:min(440px,100%);background:#fff;padding:40px;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.auth-card h1{font-size:34px}.stack{display:grid;gap:15px;margin-top:24px}.settings-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:24px}.panel h2{font-family:Georgia,serif;margin:0 0 18px}.people-list{display:grid}.person{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.person>span:nth-child(2){display:grid}.person small{font-size:11px;color:var(--muted)}.person .badge{margin-left:auto}@media(max-width:850px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto;padding:15px;flex-direction:row;align-items:center;gap:18px}.workspace-label,.sidebar-bottom{display:none}.project-nav{display:flex;margin-left:auto}.project-link{padding:7px}.project-link small{display:none}.main{padding:30px 18px 70px}.page-header h1{font-size:34px}.stats-row{flex-wrap:wrap}.progress{width:100%}.settings-grid{grid-template-columns:1fr}}@media(max-width:560px){.brand>span:last-child{display:none}.project-icon{width:30px;height:30px}.project-link strong{font-size:12px}.page-header{align-items:flex-start}.page-header .button{padding:10px}.toolbar{align-items:stretch;flex-direction:column}.search{min-width:0}.filters{align-self:flex-start}.item-card{grid-template-columns:auto 1fr}.item-counts{display:none}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.vote-buttons{grid-template-columns:1fr}.attachments{grid-template-columns:1fr}.drawer-head,.drawer-section{padding-left:20px;padding-right:20px}.settings-grid{display:block}.panel{margin-bottom:15px}}

