*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}button{cursor:pointer;background:none;border:none;font:inherit;color:inherit}a{text-decoration:none;color:inherit}input,textarea,select{font:inherit}img{display:block;max-width:100%}:root{--bg: #0f0f0f;--surface: #181818;--surface-2: #222222;--surface-3: #2a2a2a;--border: #2e2e2e;--border-focus: #88499d;--purple: #88499d;--purple-hover: #9d5cb5;--purple-dim: rgba(136, 73, 157, .18);--teal: #1FB9A5;--teal-hover: #25d4be;--teal-dim: rgba(31, 185, 165, .15);--white: #f0f0f0;--muted: #888888;--muted-2: #555555;--success: #4ade80;--success-dim: rgba(74, 222, 128, .12);--warning: #fbbf24;--skip-color: #555;--font: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--radius: 10px;--radius-sm: 6px;--radius-xs: 4px;--transition: .15s ease;--header-height: 60px}html{font-size:15px}body{font-family:var(--font);background:var(--bg);color:var(--white);line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;padding:32px 24px;max-width:1100px;margin:0 auto;width:100%}.header{height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.header__inner{max-width:1100px;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.header__logo-link{display:flex;align-items:center}.header__logo{height:32px;width:auto}.header__logo-link:after{content:"Pine";display:none;font-size:18px;font-weight:700;color:var(--white);letter-spacing:-.3px}.header__logo.error+.header__logo-link:after,.header__logo:not([src]){display:block}.header__nav{display:flex;align-items:center;gap:8px}.header__nav-link{font-size:13.5px;font-weight:500;color:var(--muted);padding:6px 12px;border-radius:var(--radius-sm);transition:color var(--transition),background var(--transition)}.header__nav-link:hover{color:var(--white);background:var(--surface-2)}.header__nav-link--active{color:var(--white);background:var(--surface-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;transition:background var(--transition),opacity var(--transition);white-space:nowrap}.btn--primary{background:var(--purple);color:#fff}.btn--primary:hover{background:var(--purple-hover)}.btn--ghost{background:var(--surface-3);color:var(--white);border:1px solid var(--border)}.btn--ghost:hover{background:var(--surface-2)}.btn--advance{background:var(--teal);color:#0f0f0f;font-size:14px;padding:11px 22px}.btn--advance:hover{background:var(--teal-hover)}.btn--advance-disabled{background:var(--surface-3);color:var(--muted);cursor:not-allowed;font-size:14px;padding:11px 22px}.btn--complete-project{background:var(--success);color:#0f0f0f;font-size:14px;padding:11px 22px}.btn--complete-project:hover{filter:brightness(1.1)}.btn-inline{font-size:12px;font-weight:500;padding:4px 10px;border-radius:var(--radius-xs);white-space:nowrap;transition:background var(--transition),color var(--transition)}.btn-inline--action{background:var(--purple-dim);color:var(--purple-hover);border:1px solid rgba(136,73,157,.3)}.btn-inline--action:hover{background:#88499d47}.btn-inline--skip{background:var(--surface-3);color:var(--muted);border:1px solid var(--border)}.btn-inline--skip:hover{color:var(--white)}.btn-inline--undo{background:var(--surface-3);color:var(--muted);border:1px solid var(--border);font-size:11px}.btn-inline--undo:hover{color:var(--white)}.status-badge{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.status-badge--active{background:var(--teal-dim);color:var(--teal);border:1px solid rgba(31,185,165,.3)}.status-badge--in-review{background:#fbbf241f;color:var(--warning);border:1px solid rgba(251,191,36,.3)}.status-badge--complete{background:var(--success-dim);color:var(--success);border:1px solid rgba(74,222,128,.3)}.progress-bar{flex:1;height:4px;background:var(--surface-3);border-radius:2px;overflow:hidden}.progress-bar__fill{height:100%;background:var(--teal);border-radius:2px;transition:width .4s ease}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--success);animation:pulse 2s infinite;flex-shrink:0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:13px;font-weight:500;color:var(--muted)}.form-input,.form-select{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--white);padding:9px 12px;font-size:14px;outline:none;transition:border-color var(--transition)}.form-input:focus,.form-select:focus{border-color:var(--border-focus)}.form-input--readonly{color:var(--muted);cursor:default}.form-select option{background:var(--surface-2)}.form-error{font-size:13px;color:#f87171}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:200;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:460px;box-shadow:0 24px 60px #00000080}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.modal__title{font-size:17px;font-weight:700}.modal__close{color:var(--muted);font-size:16px;line-height:1;padding:4px 6px;border-radius:var(--radius-xs);transition:color var(--transition)}.modal__close:hover{color:var(--white)}.modal__form{padding:20px 24px 24px;display:flex;flex-direction:column;gap:16px}.modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.dashboard__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:32px}.dashboard__title{font-size:26px;font-weight:700;letter-spacing:-.4px}.dashboard__subtitle{font-size:13.5px;color:var(--muted);margin-top:3px}.dashboard__section{margin-bottom:36px}.dashboard__section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:14px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.project-card{display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color var(--transition),transform var(--transition);cursor:pointer}.project-card:hover{border-color:var(--purple);transform:translateY(-1px)}.project-card__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.project-card__title-group{display:flex;flex-direction:column;gap:3px}.project-card__client{font-size:16px;font-weight:700;letter-spacing:-.2px}.project-card__type{font-size:12px;color:var(--muted)}.project-card__phase{display:flex;flex-direction:column;gap:2px}.project-card__phase-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted-2);font-weight:600}.project-card__phase-name{font-size:13.5px;font-weight:500;color:var(--white)}.project-card__progress-row{display:flex;align-items:center;gap:10px}.project-card__progress-text{font-size:12px;color:var(--muted);white-space:nowrap}.project-card__footer{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--muted);border-top:1px solid var(--border);padding-top:12px}.project-card__live{display:flex;align-items:center;gap:7px;font-size:12.5px}.project-card__live-url{color:var(--teal);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.project-card__live-url:hover{text-decoration:underline}.project-card__reminder{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:5px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:80px 24px;text-align:center}.empty-state__icon{font-size:40px;opacity:.3}.empty-state__heading{font-size:18px;font-weight:600;color:var(--muted)}.empty-state__text{font-size:14px;color:var(--muted-2);margin-bottom:4px}.project-detail{display:flex;flex-direction:column;gap:0}.project-detail__topbar{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.back-link{font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:4px;transition:color var(--transition)}.back-link:hover{color:var(--white)}.project-detail__header{display:flex;flex-direction:column;gap:8px}.project-detail__title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.project-detail__title{font-size:28px;font-weight:700;letter-spacing:-.5px}.project-detail__meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--muted)}.project-detail__meta-sep{color:var(--muted-2)}.project-detail__live{display:flex;align-items:center;gap:6px}.live-link{color:var(--teal);font-size:13px}.live-link:hover{text-decoration:underline}.project-detail__reminder{color:var(--muted);display:flex;align-items:center;gap:4px}.phase-nav{margin-bottom:28px;overflow-x:auto;padding-bottom:4px}.phase-nav__track{display:flex;gap:0;min-width:max-content;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.phase-nav__item{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:500;color:var(--muted);background:transparent;border-right:1px solid var(--border);transition:background var(--transition),color var(--transition);white-space:nowrap;flex:1;min-width:0}.phase-nav__item:last-child{border-right:none}.phase-nav__item:not(:disabled):hover{background:var(--surface-2);color:var(--white)}.phase-nav__item--active{background:var(--purple-dim);color:var(--white)}.phase-nav__item--viewing{background:var(--surface-3);color:var(--white);outline:1px solid var(--border-focus);outline-offset:-1px}.phase-nav__item--complete{color:var(--teal)}.phase-nav__item--locked{opacity:.38;cursor:not-allowed}.phase-nav__bubble{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;background:var(--surface-3);border:1px solid var(--border)}.phase-nav__item--active .phase-nav__bubble{background:var(--purple);border-color:var(--purple);color:#fff}.phase-nav__item--complete .phase-nav__bubble{background:var(--teal-dim);border-color:#1fb9a54d;color:var(--teal)}.phase-nav__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.phase-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 0}.phase-panel__title-group{display:flex;flex-direction:column;gap:3px}.phase-panel__number{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--purple)}.phase-panel__title{font-size:21px;font-weight:700;letter-spacing:-.3px}.phase-panel__readonly-label{font-size:12px;color:var(--muted);background:var(--surface-3);border:1px solid var(--border);border-radius:20px;padding:2px 10px;align-self:flex-start;margin-top:2px}.phase-panel__progress-pill{background:var(--surface-3);border:1px solid var(--border);border-radius:20px;font-size:12px;font-weight:600;color:var(--muted);padding:4px 12px;white-space:nowrap;flex-shrink:0}.phase-panel__goal{font-size:13.5px;color:var(--muted);padding:10px 24px 0;line-height:1.55}.phase-panel__steps{padding:16px 24px;display:flex;flex-direction:column;gap:4px}.phase-panel__footer{padding:16px 24px 22px;border-top:1px solid var(--border);display:flex;align-items:center;gap:14px}.phase-panel__complete-banner{padding:14px 24px;background:var(--success-dim);border-top:1px solid rgba(74,222,128,.2);color:var(--success);font-size:14px;font-weight:600;text-align:center;letter-spacing:.3px}.step{border-radius:var(--radius-sm);transition:background var(--transition)}.step--skipped{opacity:.65}.step--readonly{pointer-events:none}.step__row{display:flex;align-items:flex-start;gap:10px;padding:9px 8px;border-radius:var(--radius-sm);transition:background var(--transition)}.step__row:hover{background:var(--surface-2)}.step__checkbox{width:20px;height:20px;border-radius:5px;border:2px solid var(--border);background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:border-color var(--transition),background var(--transition);color:#fff}.step__checkbox:not(:disabled):hover{border-color:var(--purple)}.step__checkbox--checked{background:var(--purple);border-color:var(--purple)}.step__checkbox--skipped{background:var(--surface-3);border-color:var(--muted-2);color:var(--muted)}.step__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.step__name{font-size:14px;font-weight:500;color:var(--white);line-height:1.4}.step--checked .step__name{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--muted-2)}.step--skipped .step__name{color:var(--muted)}.step__desc{font-size:12.5px;color:var(--muted);line-height:1.45}.step__badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}.badge{font-size:11px;font-weight:600;padding:2px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.4px}.badge--optional{background:#ffffff0f;color:var(--muted);border:1px solid var(--border)}.badge--skipped{background:var(--surface-3);color:var(--muted-2);border:1px solid var(--border)}.badge--gate{background:#fbbf241a;color:var(--warning);border:1px solid rgba(251,191,36,.25)}.badge--integration{background:var(--purple-dim);color:var(--purple-hover);border:1px solid rgba(136,73,157,.25);cursor:help}.step__controls{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-top:1px}.step__expand-btn{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);color:var(--muted);transition:background var(--transition),color var(--transition)}.step__expand-btn:hover{background:var(--surface-3);color:var(--white)}.step__details{padding:4px 8px 12px 38px;display:flex;flex-direction:column;gap:12px}.step__field{display:flex;flex-direction:column;gap:5px}.step__field--inline{flex-direction:row;align-items:center;gap:12px}.step__field--inline .step__label{min-width:130px;flex-shrink:0}.step__label{font-size:12.5px;font-weight:500;color:var(--muted)}.step__input{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--white);padding:7px 10px;font-size:13.5px;outline:none;transition:border-color var(--transition);width:100%}.step__input:focus{border-color:var(--border-focus)}.step__input--date{width:auto;min-width:160px;color-scheme:dark}.step__input--indented{margin-left:24px}.step__textarea{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-xs);color:var(--white);padding:8px 10px;font-size:13.5px;outline:none;resize:vertical;min-height:70px;line-height:1.5;transition:border-color var(--transition);width:100%}.step__textarea:focus{border-color:var(--border-focus)}.step__checklist{display:flex;flex-direction:column;gap:7px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.step__check-row{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--white);cursor:pointer;-webkit-user-select:none;user-select:none}.step__check-input{width:15px;height:15px;accent-color:var(--purple);cursor:pointer;flex-shrink:0}.step__integration-hint{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:var(--muted);background:var(--purple-dim);border:1px solid rgba(136,73,157,.2);border-radius:var(--radius-xs);padding:7px 10px;line-height:1.45}.step__integration-icon{font-size:13px;flex-shrink:0;margin-top:1px}.not-found{display:flex;flex-direction:column;align-items:center;gap:16px;padding:80px 24px;text-align:center}.not-found__text{font-size:16px;color:var(--muted)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted-2)}@media (max-width: 600px){.main{padding:20px 16px}.header__inner{padding:0 16px}.project-grid{grid-template-columns:1fr}.phase-panel__header{padding:16px 16px 0}.phase-panel__steps{padding:12px 16px}.phase-panel__footer{padding:12px 16px 16px}.phase-panel__goal{padding:8px 16px 0}.step__details{padding:4px 8px 10px 30px}.project-detail__title{font-size:22px}.phase-nav__label{display:none}}
