:root{--font:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,"Helvetica Neue",Helvetica,Arial,sans-serif;--text:#37352f;--text-2:#37352fa6;--text-3:#37352f73;--bg:#fff;--bg-subtle:#37352f08;--bg-hover:#37352f0f;--bg-active:#37352f17;--border:#37352f17;--border-strong:#37352f29;--blue:#2383e2;--blue-hover:#1a78d8;--blue-soft:#2383e21f;--amber:#cb7b1a;--amber-bg:#d4841714;--amber-border:#d4841747;--danger:#e03e3e;--danger-bg:#e03e3e12;--green:#2a9d6f;--radius:6px;--radius-lg:10px;--shadow-pop:0 0 0 1px #0f0f0f0d,0 8px 24px #0f0f0f1f,0 2px 6px #0f0f0f0f;--topbar-h:45px;color:var(--text);background:var(--bg);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:16px;line-height:1.5}*{box-sizing:border-box}html,body{min-width:320px;margin:0;padding:0}body{background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:default;opacity:.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--blue-soft)}.field{display:grid;gap:6px}.field>span{color:var(--text-2);font-size:12px;font-weight:500}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg);outline:none;width:100%;padding:8px 10px;transition:border-color .12s,box-shadow .12s,background .12s;font-size:14px}input::placeholder,textarea::placeholder{color:var(--text-3)}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}textarea{resize:vertical;line-height:1.55}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2378736b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-right:30px}.btn{display:inline-flex;border-radius:var(--radius);white-space:nowrap;justify-content:center;align-items: center;gap:6px;height:32px;padding:0 12px;transition:background .12s,color .12s,border-color .12s;font-size:14px;font-weight:500}.btn svg{flex:none}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-hover)}.btn-secondary{border:1px solid var(--border-strong);background:var(--bg);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-ghost{color:var(--text-2);padding:0 8px}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.btn-block{width:100%}.btn-sm{height:28px;padding:0 10px;font-size:13px}.icon-btn{display:inline-grid;border-radius:var(--radius);color:var(--text-2);place-items: center;width:28px;height:28px;transition:background .12s,color .12s}.icon-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.icon-btn-danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger)}.notice{border-radius:var(--radius);padding:9px 12px;font-size:13px;line-height:1.45}.notice-error{background:var(--danger-bg);color:var(--danger)}.notice-warn{background:var(--amber-bg);color:var(--amber);border:1px solid var(--amber-border)}.center-screen{display:grid;place-items: center;min-height:100vh;padding:24px}.card{display:grid;text-align:center;gap:16px;width:min(380px,100%)}.wordmark{letter-spacing:.18em;color:var(--text-3);font-size:12px;font-weight:600}.card h1{letter-spacing:-.01em;margin:0;font-size:26px;font-weight:700}.card .sub{color:var(--text-2);margin:0;font-size:14.5px;line-height:1.55}.card .ticket-chip{justify-self:center}.auth-form{display:grid;text-align:left;gap:10px;margin-top:4px}.auth-form input{text-align:center;height:40px;font-size:15px}.auth-back{color:var(--text-2);font-size:13px}.auth-meta{color:var(--text-3);font-size:13px}.spinner-dot{border:2px solid var(--border-strong);border-top-color:var(--text-2);animation:spin .7s linear infinite;border-radius:50%;justify-self:center;width:22px;height:22px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.app{min-height:100vh}.topbar{position:sticky;z-index:30;height:var(--topbar-h);display:flex;backdrop-filter:saturate(180%)blur(8px);border-bottom:1px solid var(--border);background:#ffffffd9;align-items: center;gap:10px;padding:0 14px;top:0}.topbar-key{color:var(--text);font-size:14px;font-weight:500}.topbar-sep{color:var(--text-3)}.topbar-status{color:var(--text-3);font-size:12.5px}.topbar-spacer{flex:1}.topbar-email{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:13px}.layout{display:flex;align-items: flex-start}.content{flex:auto;min-width:0}.doc-wrap{max-width:720px;margin:0 auto;padding:72px 60px 140px}.doc-eyebrow{display:flex;align-items: center;gap:10px;margin-bottom:14px;font-size:13px}.doc-key{color:var(--text-3);letter-spacing:.02em;font-weight:600}.chip{display:inline-flex;background:var(--bg-hover);color:var(--text-2);border-radius:5px;align-items: center;gap:5px;height:22px;padding:0 9px;font-size:12.5px;font-weight:500}.chip-dot{opacity:.6;background:currentColor;border-radius:50%;width:6px;height:6px}.doc-title{letter-spacing:-.018em;margin:0 0 8px;font-size:40px;font-weight:700;line-height:1.18}.toggle{margin:18px 0 4px}.toggle-head{display:flex;border-radius:var(--radius);color:var(--text-2);text-align:left;align-items: center;gap:6px;width:100%;margin-left:-6px;padding:4px 6px 4px 2px;font-size:14px;font-weight:500}.toggle-head:hover{background:var(--bg-hover)}.toggle-caret{display:inline-grid;color:var(--text-3);place-items: center;transition:transform .15s}.toggle-caret.open{transform:rotate(90deg)}.toggle-body{color:var(--text-2);white-space:pre-wrap;padding:6px 0 6px 22px;font-size:14.5px;line-height:1.65}.rich{font-size:16px;line-height:1.7}.rich:focus{outline:none}.rich p{margin:0 0 .55em}.rich p:last-child{margin-bottom:0}.rich h1,.rich h2,.rich h3{margin:1em 0 .4em;font-weight:650;line-height:1.3}.rich h1{font-size:1.5em}.rich h2{font-size:1.25em}.rich h3{font-size:1.08em}.rich ul,.rich ol{margin:0 0 .55em;padding-left:1.4em}.rich li{margin:.1em 0}.rich a{text-decoration:underline;text-underline-offset:2px}.rich blockquote{border-left:3px solid var(--border-strong);color:var(--text-2);margin:.6em 0;padding-left:14px}.rich code{background:var(--bg-hover);border-radius:4px;padding:.1em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.rich-block{margin:6px 0}.rich.is-editor .is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;pointer-events:none;color:var(--text-3);height:0}.rich.is-editor{border-radius:var(--radius);transition:background .12s}.rich-editor{margin:6px 0}.rich-editor .rich-block{margin:0}.bubble-menu{display:flex;z-index:40;animation:bubble-in .12s ease;background:#2f3437;border-radius:9px;align-items: center;gap:1px;padding:4px;box-shadow:0 6px 22px #0f0f0f4d}@keyframes bubble-in{0%{opacity:0}}.bubble-menu .fmt-btn{display:grid;color:#ffffffd1;border-radius:6px;place-items: center;width:28px;height:28px;transition:background .12s,color .12s}.bubble-menu .fmt-btn:hover{color:#fff;background:#ffffff24}.bubble-menu .fmt-btn.is-active{color:#5b9dff}.bubble-menu .fmt-sep{background:#ffffff29;width:1px;height:18px;margin:0 4px}.mention{display:inline;background:var(--blue-soft);color:var(--blue);white-space:nowrap;cursor:default;border-radius:5px;padding:1px 5px 1px 3px;font-weight:500}.mention-popup{position:absolute;z-index:60;border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);animation:bubble-in .12s ease;background:#fff;min-width:220px;max-width:320px;padding:4px}.mention-option{display:flex;border-radius:var(--radius);text-align:left;color:var(--text);align-items: center;gap:9px;width:100%;padding:6px 8px;transition:background .1s;font-size:14px}.mention-option:hover,.mention-option.is-active{background:var(--bg-hover)}.mention-option-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mention-empty{color:var(--text-3);padding:8px 10px;font-size:13px}.estimate{margin:28px 0}.estimate-lead p{margin:0 0 .35em;line-height:1.65}.estimate-note{margin:16px 0 24px;line-height:1.65}.estimate-note a{text-decoration:underline;text-underline-offset:2px}.estimate-limit-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px;font-size:12.5px;font-weight:600}.estimate-roles{display:grid}.estimate-role{display:grid;grid-template-columns:1fr auto auto;border-bottom:1px solid var(--border);align-items:baseline;gap:14px;padding:11px 0}.estimate-role-name{font-weight:500}.estimate-role-hours{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:14.5px}.estimate-role-amount{font-variant-numeric:tabular-nums;text-align:right;min-width:80px;font-weight:600}.estimate-total{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:16px 0 4px}.estimate-total-label{color:var(--text-2);font-size:15px;font-weight:500}.estimate-total-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.estimate-outro{margin-top:26px;line-height:1.65}.estimate-empty{border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--text-3);text-align:center;margin:14px 0;padding:18px;font-size:14px}.estimate-hint{display:flex;background:var(--blue-soft);border-radius:var(--radius);color:var(--blue);align-items: center;gap:8px;margin:14px 0;padding:11px 14px;font-size:13.5px;font-weight:500}.comments{border-top:1px solid var(--border);margin-top:64px;padding-top:28px}.comments-title{color:var(--text);display:flex;align-items: center;gap:8px;margin:0 0 20px;font-size:15px;font-weight:600}.comments-count{color:var(--text-3);font-weight:500}.comment-list{display:grid;gap:4px}.comment{display:flex;border-radius:var(--radius);gap:12px;margin:0 -10px;padding:10px}.comment-internal{background:var(--amber-bg)}.avatar{display:grid;color:#fff;text-transform:uppercase;border-radius:50%;flex:none;place-items: center;width:28px;height:28px;font-size:12px;font-weight:600}.comment-main{flex:1;min-width:0}.comment-head{display:flex;flex-wrap:wrap;align-items: center;gap:8px;margin-bottom:2px}.comment-author{font-size:14px;font-weight:600}.comment-time{color:var(--text-3);font-size:12.5px}.tag{display:inline-flex;letter-spacing:.02em;border-radius:4px;align-items: center;gap:4px;height:18px;padding:0 6px;font-size:11px;font-weight:600}.tag-internal{background:var(--amber-border);color:var(--amber)}.comment-body{color:var(--text);overflow-wrap:anywhere;font-size:14.5px;line-height:1.6}.comment-body p{margin:0 0 .4em}.comment-body p:last-child{margin-bottom:0}.comment-actions{display:inline-flex;opacity:0;gap:2px;margin-left:auto;transition:opacity .12s}.comment:hover .comment-actions,.comment:focus-within .comment-actions{opacity:1}.comment-actions .icon-btn{width:24px;height:24px}@media (hover:none){.comment-actions{opacity:1}}.comment-edit{display:grid;gap:8px;margin-top:4px}.comment-edit-box{border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:4px 10px;transition:border-color .12s,box-shadow .12s}.comment-edit-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.comment-edit-box .rich-editor{min-height:40px;margin:0;font-size:14.5px}.comment-edit-foot{display:flex;justify-content:flex-end;gap:6px}.comment-confirm{display:flex;color:var(--text-2);align-items: center;gap:8px;margin-top:8px;font-size:13px}.comment-confirm span{margin-right:auto}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#c93434}.comments-empty{color:var(--text-3);padding:4px 0;font-size:14px}.composer{display:flex;gap:12px;margin-bottom:24px}.composer-box{border:1px solid var(--border-strong);border-radius:var(--radius-lg);flex:1;padding:4px;transition:border-color .12s,box-shadow .12s}.composer-box:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}.composer-input{padding:4px 10px}.composer-input .rich-editor{min-height:40px;margin:0}.composer-foot{display:flex;justify-content:space-between;align-items: center;gap:8px;padding:4px 6px 4px 8px}.segmented{display:inline-flex;background:var(--bg-hover);border-radius:7px;padding:2px}.segmented button{color:var(--text-2);border-radius:5px;height:24px;padding:0 10px;transition:background .12s,color .12s;font-size:12.5px;font-weight:500}.segmented button.active{background:var(--bg);color:var(--text);box-shadow:0 1px 2px #0f0f0f1a}.sidebar{position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;border-left:1px solid var(--border);background:var(--bg-subtle);display:grid;flex:0 0 312px;align-content: start;align-self:stretch;gap:22px;padding:20px 18px 36px}.sb-section{display:grid;gap:10px}.sb-label{letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);font-size:11.5px;font-weight:600}.sb-roles{display:grid;gap:8px}.sb-role{display:grid;grid-template-columns:1fr 64px 56px;align-items: center;gap:8px}.sb-role-name{font-size:13px;font-weight:500}.sb-role-name small{display:block;color:var(--text-3);font-size:11px;font-weight:400}.sb-role input{text-align:center;font-variant-numeric:tabular-nums;height:32px;padding:0 8px}.sb-rate{position:relative}.sb-rate input{width:100%}.sb-rate.is-overridden input{border-color:var(--blue);background:var(--blue-soft);padding-right:20px}.sb-rate-reset{position:absolute;display:grid;color:var(--blue);border-radius:4px;place-items: center;width:18px;height:18px;top:50%;right:3px;transform:translateY(-50%)}.sb-rate-reset:hover{background:#2383e22e}.sb-role-head{display:grid;grid-template-columns:1fr 64px 56px;color:var(--text-3);gap:8px;font-size:11px}.sb-role-head span:nth-child(2),.sb-role-head span:nth-child(3){text-align:center}.sb-total{display:flex;border-top:1px solid var(--border);justify-content:space-between;align-items:baseline;margin-top:4px;padding-top:12px}.sb-total-label{color:var(--text-2);font-size:13px}.sb-total-value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.sb-jira-status{display:flex;color:var(--text-2);align-items: center;gap:7px;font-size:12.5px}.sb-jira-time{color:var(--text-3);font-size:12px}.sb-actions{display:grid;gap:8px}.sb-divider{background:var(--border);height:1px}.sb-manage{display:grid;gap:4px}.sb-manage-item{display:flex;border-radius:var(--radius);color:var(--text-2);text-align:left;align-items: center;gap:9px;height:34px;margin:0 -8px;padding:0 8px;font-size:13.5px}.sb-manage-item:hover{background:var(--bg-hover);color:var(--text)}.sb-manage-item svg{color:var(--text-3)}.modal-backdrop{position:fixed;z-index:100;display:grid;overflow-y:auto;background:#0f0f0f52;place-items: start center;padding:64px 20px 40px;inset:0}.modal{background:var(--bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);overflow:hidden;width:min(540px,100%)}.modal-head{display:flex;border-bottom:1px solid var(--border);justify-content:space-between;align-items: center;padding:16px 18px}.modal-head h2{margin:0;font-size:16px;font-weight:600}.modal-body{display:grid;overflow-y:auto;gap:16px;max-height:min(70vh,640px);padding:18px}.add-row{display:grid;grid-template-columns:1fr auto;gap:8px}.modal-list{display:grid;gap:10px}.rate-field{position:relative}.rate-field input{text-align:right;font-variant-numeric:tabular-nums;width:100%;padding-right:38px}.rate-field span{position:absolute;color:var(--text-3);pointer-events:none;font-size:12px;top:50%;right:10px;transform:translateY(-50%)}.add-row-spec{grid-template-columns:1fr 120px auto}.spec-row{display:grid;grid-template-columns:1fr 110px auto;align-items: center;gap:8px}.spec-row-name{font-weight:500}.spec-row-actions{display:flex;align-items: center;gap:2px}.icon-btn-ok:hover:not(:disabled){background:var(--blue-soft);color:var(--blue)}.modal-empty{color:var(--text-3);padding:4px 0;font-size:13.5px}.proj-card{border:1px solid var(--border);border-radius:var(--radius);display:grid;gap:10px;padding:12px}.proj-card-head{display:flex;justify-content:space-between;align-items: center;gap:8px}.proj-card-name{font-size:14px;font-weight:600}.proj-card textarea{min-height:72px;font-size:13px}.proj-card-foot{display:flex;justify-content:space-between;align-items: center;gap:8px}.field-hint{color:var(--text-3);font-size:12px}.admin-row{display:flex;border-bottom:1px solid var(--border);align-items: center;gap:10px;padding:9px 0}.admin-row:last-child{border-bottom:0}.admin-row-main{flex:1;min-width:0}.admin-row-email{overflow-wrap:anywhere;font-size:14px;font-weight:500}.badge{display:inline-flex;border-radius:999px;align-items: center;gap:5px;height:20px;padding:0 8px;font-size:11.5px;font-weight:600}.badge-active{color:var(--green);background:#2a9d6f1f}.badge-invited{background:var(--bg-hover);color:var(--text-2)}.toast{position:fixed;z-index:200;display:flex;color:#fff;animation:toast-in .18s ease;background:#2d2b26;border-radius:8px;align-items: center;gap:8px;padding:9px 16px;font-size:13.5px;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0f0f0f40}.toast-error{background:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.sheet-fab{position:fixed;z-index:40;display:inline-flex;color:#fff;background:#2d2b26;border-radius:999px;align-items: center;gap:8px;height:46px;padding:0 18px;font-size:14px;font-weight:500;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 6px 22px #0f0f0f47}.sheet-fab-total{font-variant-numeric:tabular-nums;border-left:1px solid #ffffff40;margin-left:4px;padding-left:10px;font-weight:700}.sheet-backdrop{position:fixed;z-index:50;background:#0f0f0f52;inset:0}.sheet{position:fixed;z-index:51;overflow-y:auto;background:var(--bg);padding:8px 18px calc(28px + env(safe-area-inset-bottom));animation:sheet-up .22s ease;border-radius:16px 16px 0 0;max-height:86vh;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #0f0f0f2e}@keyframes sheet-up{0%{transform:translateY(100%)}}.sheet-handle{background:var(--border-strong);border-radius:2px;width:36px;height:4px;margin:6px auto 4px}.sheet-head{display:flex;justify-content:space-between;align-items: center;padding:4px 0 12px;font-size:15px}.sheet-body{display:grid;gap:22px}@media (max-width:1080px){.layout{flex-direction:column}.doc-wrap{padding:48px 28px 104px}}@media (max-width:680px){:root{font-size:15px}.doc-wrap{padding:36px 20px 96px}.doc-title{font-size:30px}.topbar-email{display:none}.estimate-total-value{font-size:22px}}@media (max-width:540px){.add-row-spec{grid-template-columns:1fr auto}.add-row-spec input:first-child{grid-column:1/-1}.spec-row{grid-template-columns:1fr auto;gap:6px 8px}.spec-row-name{grid-column:1/-1}}
