:root{--pink:#e6007e;--pink-600:#c70d72;--pink-050:#fdeaf4;--ink:#1f1f1f;--text:#393c40;--muted:#74787e;--line:#e7e7ea;--line-strong:#d9d9de;--canvas:#f6f6f8;--surface:#fff;--s1:#6b7280;--s2:#3b82f6;--s3:#8b5cf6;--s4:#f59e0b;--s5:#f97316;--s6:#e6007e;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #1010140f, 0 1px 3px #1010140a;--shadow-md:0 4px 16px #10101414, 0 2px 6px #1010140d;--shadow-lg:0 24px 60px #10101438;--sans:"Hanken Grotesk", system-ui, -apple-system, sans-serif;--display:"Bricolage Grotesque", var(--sans);font-family:var(--sans);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--canvas);color:var(--text);margin:0}h1,h2,h3,h4{font-family:var(--display);color:var(--ink);letter-spacing:-.01em;margin:0}a{color:var(--pink-600);text-decoration:none}a:hover{text-decoration:underline}.field{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;transition:border-color .15s,box-shadow .15s}.field::placeholder{color:var(--muted)}.field:focus{border-color:var(--pink);box-shadow:0 0 0 3px var(--pink-050);outline:none}.btn{font:inherit;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:10px 16px;font-weight:600;transition:transform 50ms,background .15s,box-shadow .15s,border-color .15s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--pink);color:#fff;box-shadow:0 2px 8px #e6007e47}.btn-primary:hover{background:var(--pink-600)}.btn-ghost{color:var(--text);border-color:var(--line-strong);background:0 0}.btn-ghost:hover{border-color:var(--muted);background:#fff}.btn-sm{padding:6px 12px;font-size:14px}.error{color:#c0143c;margin:4px 0 0;font-size:14px}.auth-screen{background:radial-gradient(900px 500px at 12% -10%,#e6007e29,#0000 60%),radial-gradient(700px 500px at 110% 120%,#e6007e1a,#0000 55%),linear-gradient(160deg,#161616,#1f1f1f 55%,#232323);place-items:center;min-height:100%;padding:24px;display:grid}.auth-card{background:var(--surface);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border-radius:16px;padding:32px 30px 28px;animation:.5s cubic-bezier(.2,.7,.2,1) both rise}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.auth-logo{width:auto;height:34px;margin-bottom:22px;display:block}.auth-card h1{margin-bottom:4px;font-size:22px}.auth-sub{color:var(--muted);margin:0 0 22px;font-size:14px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form .btn-primary{margin-top:4px}.auth-hint{border-top:1px solid var(--line);color:var(--muted);margin-top:18px;padding-top:16px;font-size:12.5px}.app{flex-direction:column;min-height:100%;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;justify-content:space-between;align-items:center;gap:16px;padding:12px 22px;display:flex;position:sticky;top:0}.app-header__brand{align-items:center;gap:12px;display:flex}.app-header__brand img{width:auto;height:40px}.app-header__brand .divider{background:var(--line-strong);width:1px;height:22px}.app-header__brand .tag{font-family:var(--display);color:var(--ink);letter-spacing:-.01em;font-size:14px;font-weight:700}.app-header__user{color:var(--muted);align-items:center;gap:14px;font-size:14px;display:flex}.app-header__user .who{color:var(--ink);font-weight:600}.app-header__user a{color:var(--muted)}.app-header__user a:hover{color:var(--pink-600)}.board-toolbar{flex-wrap:wrap;align-items:center;gap:14px;padding:20px 22px 6px;display:flex}.board-toolbar h2{margin-right:4px;font-size:24px}.board-toolbar .spacer{flex:1}.board-toolbar label{color:var(--muted);align-items:center;gap:6px;font-size:14px;display:inline-flex}.board{align-items:flex-start;gap:14px;padding:14px 22px 28px;display:flex;overflow-x:auto}.column{border:1px solid var(--line);border-radius:var(--radius);outline-offset:-2px;background:#eeeef1;outline:2px dashed #0000;flex:1 0 236px;min-width:236px;padding:0 10px 10px;transition:background .15s,outline-color .15s}.column.dragover{background:var(--pink-050);outline-color:var(--pink)}.column__head{font-family:var(--display);color:var(--ink);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;padding:12px 4px 10px;font-size:13px;font-weight:700;display:flex;position:sticky;top:0}.column__head .dot{border-radius:50%;flex:none;width:9px;height:9px}.column__head .count{font-family:var(--sans);color:var(--muted);border:1px solid var(--line);background:#fff;border-radius:999px;margin-left:auto;padding:1px 8px;font-size:12px;font-weight:600}.column:first-child .dot{background:var(--s1)}.column:nth-child(2) .dot{background:var(--s2)}.column:nth-child(3) .dot{background:var(--s3)}.column:nth-child(4) .dot{background:var(--s4)}.column:nth-child(5) .dot{background:var(--s5)}.column:nth-child(6) .dot{background:var(--s6)}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);cursor:grab;border-radius:10px;margin-bottom:9px;padding:11px 12px;transition:transform 80ms,box-shadow .15s,border-color .15s}.card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong);transform:translateY(-1px)}.card:active{cursor:grabbing}.card__name{color:var(--ink);font-size:15px;font-weight:700}.card__meta{color:var(--muted);margin-top:2px;font-size:12.5px}.card__tags{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.tag{background:var(--pink-050);color:var(--pink-600);border:1px solid #e6007e2e;border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.tag button{all:unset;cursor:pointer;color:var(--pink-600);opacity:.6;font-size:13px;line-height:1}.tag button:hover{opacity:1}.empty-hint{color:var(--muted);padding:6px 4px;font-size:13px}.create-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.create-form .field{flex:150px;width:auto;min-width:130px}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#14121680;justify-content:center;align-items:flex-start;padding:6vh 16px 16px;animation:.18s both fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);box-shadow:var(--shadow-lg);border-radius:16px;width:540px;max-width:94vw;max-height:86vh;animation:.24s cubic-bezier(.2,.7,.2,1) both rise;overflow:auto}.modal__head{justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 12px;display:flex}.modal__head h2{font-size:21px}.modal__status{color:var(--pink-600);background:var(--pink-050);border:1px solid #e6007e2e;border-radius:999px;margin-top:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.modal__meta{color:var(--muted);margin:2px 0 0;font-size:14px}.modal__close{all:unset;cursor:pointer;color:var(--muted);border-radius:6px;padding:4px;font-size:20px;line-height:1}.modal__close:hover{color:var(--ink);background:var(--canvas)}.modal__body{flex-direction:column;gap:20px;padding:6px 24px 24px;display:flex}.section h4{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px;font-size:12px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tags-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.note-form{flex-direction:column;gap:8px;display:flex}.note-form textarea{font:inherit;resize:vertical;min-height:56px;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px}.note-form textarea:focus{border-color:var(--pink);box-shadow:0 0 0 3px var(--pink-050);outline:none}.note-form .btn{align-self:flex-start}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--line);padding:0 0 14px 20px;position:relative}.timeline li:last-child{border-left-color:#0000;padding-bottom:0}.timeline li:before{content:"";background:var(--pink);width:10px;height:10px;box-shadow:0 0 0 3px var(--pink-050);border-radius:50%;position:absolute;top:3px;left:-6px}.timeline .when{color:var(--muted);font-size:11.5px;display:block}.offerings{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.offering{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.offering--off{opacity:.55}.offering__title{color:var(--ink);font-weight:700}.offering__body{color:var(--muted);margin-top:2px;font-size:13px}.timeline .what{color:var(--ink);font-size:14px}.ctx{width:100%;font:inherit;resize:vertical;min-height:70px;color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px}.ctx:focus{border-color:var(--pink);box-shadow:0 0 0 3px var(--pink-050);outline:none}.chip{cursor:pointer;border:1px solid var(--line-strong);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:13px;display:inline-flex}.chip--on{border-color:var(--pink);background:var(--pink-050);color:var(--pink-600)}.chip input{accent-color:var(--pink)}.variant{border:1px solid var(--line);background:#fff;border-radius:10px;margin-top:10px;padding:10px 12px}.variant__head{color:var(--ink);justify-content:space-between;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.variant__head span{color:var(--muted);font-weight:500}.variant .btn{margin-top:8px}.set-row{color:var(--muted);flex-direction:column;gap:4px;margin-bottom:8px;font-size:13px;display:flex}.set-row .field{width:100%}.post-images{flex-wrap:wrap;gap:10px;display:flex}.post-img{position:relative}.post-img img{object-fit:cover;border:1px solid var(--line);border-radius:8px;width:120px;height:120px}.post-img button{background:#fff;padding:2px 8px;position:absolute;top:4px;right:4px}.post-preview{border:1px solid var(--line);box-shadow:var(--shadow-sm);background:#fff;border-radius:12px;max-width:540px;overflow:hidden}.post-preview__text{white-space:pre-wrap;color:var(--ink);padding:14px 16px 6px;font-size:15px;line-height:1.55}.post-preview__empty{color:var(--muted);padding:14px 16px;font-size:14px}.post-preview__tags{color:var(--pink-600);padding:0 16px 12px;font-size:14px;font-weight:600}.post-preview__media{border-top:1px solid var(--line);background:var(--canvas)}.post-preview__media img{object-fit:contain;width:100%;max-height:460px;display:block}.post-preview__media--multi{grid-template-columns:1fr 1fr;gap:2px;display:grid}.post-preview__media--multi img{object-fit:contain;height:220px;max-height:none}.post-row{align-items:center;gap:12px;display:flex}.post-row__thumb{object-fit:cover;border:1px solid var(--line);border-radius:8px;flex:none;width:56px;height:56px}.post-row__thumb--ph{color:var(--muted);background:var(--canvas);place-items:center;font-size:20px;display:grid}.dash{gap:18px;max-width:1100px;padding:20px 22px;display:grid}.dash h2{font-size:24px}.dash-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.dash-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:14px 16px}.dash-card .num{font-family:var(--display);color:var(--ink);font-size:28px;font-weight:800}.dash-card .lbl{color:var(--muted);font-size:13px}.funnel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.funnel h3,.panel h3{margin-bottom:12px;font-size:14px}.fbar{grid-template-columns:120px 1fr 36px;align-items:center;gap:10px;margin-bottom:8px;display:grid}.fbar .name{color:var(--text);font-size:13px}.fbar .track{background:#eeeef1;border-radius:999px;height:14px;overflow:hidden}.fbar .fill{background:linear-gradient(90deg, #f9a8d4, var(--pink));border-radius:999px;height:100%}.fbar .val{color:var(--ink);text-align:right;font-size:13px;font-weight:700}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px}.due-item,.rec-item{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;font-size:14px;display:flex}.due-item:last-child,.rec-item:last-child{border-bottom:none}.due-item .meta,.rec-item .meta{color:var(--muted);font-size:12px}
