@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg:#fafaf7;--surface:#fff;--surface-sunken:#f4f2ec;--ink:#17181c;--muted:#6b6e76;--faint:#9a9ca3;--line:#e7e4dc;--line-strong:#d6d2c6;--accent:#c1501f;--accent-hover:#a8431a;--accent-soft:#fbeae0;--accent-ink:#7a3413;--success:#1a7f5a;--success-soft:#e4f2eb;--warning:#9c7a0b;--warning-soft:#fbf1dc;--danger:#b23a2e;--danger-soft:#fbe9e6;--cat-mobile:#3d6fb4;--cat-mobile-soft:#e7eef8;--cat-internet:#1a7f5a;--cat-internet-soft:#e4f2eb;--cat-insurance:#7a5bb0;--cat-insurance-soft:#eeeaf7;--cat-lease:#c1501f;--cat-lease-soft:#fbeae0;--cat-saas:#2d7c8a;--cat-saas-soft:#e3f0f2;--cat-electricity:#b0762e;--cat-electricity-soft:#f5ecdc;--cat-other:#6b6e76;--cat-other-soft:#f0eee8;--font-display:"Fraunces", Georgia, serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:14px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg)}body{font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-weight:500}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{background:var(--accent);color:#fff8f4;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;font-family:var(--font-body);cursor:pointer;padding:.65rem 1.15rem;transition:background .15s,border-color .15s,transform .1s}button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}button.secondary:hover{background:var(--surface-sunken);border-color:var(--line-strong)}button.ghost-danger{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-soft)}button.ghost-danger:hover{background:#f7dbd6;border-color:#f7dbd6}input,select,textarea{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--ink);font-size:.9rem;font-family:var(--font-body);outline:none;width:100%;padding:.65rem .85rem;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}datalist{background:var(--surface);color:var(--ink)}input[type=number],input[type=date]{font-family:var(--font-mono);font-size:.85rem}.layout{min-height:100vh;display:flex}.sidebar{background:var(--bg);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:240px;padding:1.75rem 0;display:flex}.sidebar-brand{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);padding:0 1.5rem;font-size:1.15rem;font-weight:600}.sidebar-brand .accent-dot{color:var(--accent)}.user-info{background:var(--surface-sunken);border-radius:999px;align-items:center;gap:.6rem;margin:1.5rem 1.5rem 1.25rem;padding:.5rem .75rem;display:flex}.avatar{background:var(--accent-soft);width:24px;height:24px;color:var(--accent-ink);font-family:var(--font-mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:500;display:flex}.user-email{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:0 .75rem;display:flex}.sidebar-nav a{border-radius:var(--radius-sm);color:var(--muted);align-items:center;gap:.65rem;padding:.55rem .75rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-nav a .nav-dot{opacity:.45;background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.sidebar-nav a:hover{background:var(--surface-sunken);color:var(--ink)}.sidebar-nav a.active{background:var(--accent-soft);color:var(--accent-ink)}.sidebar-nav a.active .nav-dot{background:var(--accent);opacity:1}.logout-btn{margin:.75rem .75rem 0}.logout-btn.secondary{width:auto}.main{flex:1;width:0;max-width:1140px;padding:2.5rem 3rem;overflow-y:auto}.page-header,.dashboard-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:2rem;display:flex}.page-header h1,.dashboard-header h1{font-size:1.7rem}.page-header p{color:var(--muted);margin-top:.3rem;font-size:.88rem}.header-meta{font-family:var(--font-mono);color:var(--faint);letter-spacing:.02em;font-size:.75rem}.stat-row{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:2.5rem;display:grid;overflow:hidden}.stat{background:var(--surface);padding:1.1rem 1.25rem}.stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:500}.stat .value{font-family:var(--font-mono);color:var(--ink);margin-top:.4rem;font-size:1.45rem;font-weight:500}.stat .value.accent{color:var(--accent)}.stat .value.danger{color:var(--danger)}.stat-link{text-decoration:none;transition:background .15s;display:block}.stat-link:hover{background:var(--surface-sunken)}@media (width<=768px){.stat-row{grid-template-columns:repeat(2,1fr)}}.bento-row{grid-template-columns:1.6fr 1fr;gap:1rem;margin-bottom:2.5rem;display:grid}.bento-tiles{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.bento-tiles .stat{padding:1rem 1.1rem}.feature-deadline{background:var(--ink);border-radius:var(--radius-lg);color:#f4f1ea;flex-direction:column;justify-content:space-between;padding:1.5rem 1.75rem;display:flex;position:relative;overflow:hidden}.feature-deadline .fd-kicker{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--accent-soft);opacity:.85;font-size:.7rem}.feature-deadline .fd-company{font-family:var(--font-display);color:#fff;margin-top:.5rem;font-size:1.55rem;font-weight:500}.feature-deadline .fd-type{color:#c9c5ba;margin-top:.15rem;font-size:.82rem}.feature-deadline .fd-bottom{justify-content:space-between;align-items:baseline;margin-top:1.4rem;display:flex}.feature-deadline .fd-days{font-family:var(--font-mono);color:#fff;font-size:2.3rem;font-weight:500;line-height:1}.feature-deadline .fd-days-label{color:#b8b3a6;margin-left:.4rem;font-size:.75rem}.feature-deadline .fd-date{font-family:var(--font-mono);color:#c9c5ba;text-align:right;font-size:.8rem}.feature-deadline .fd-link{color:#fff;border-bottom:1px solid var(--accent);width:fit-content;margin-top:1rem;font-size:.8rem;font-weight:500;text-decoration:none;display:inline-block}.feature-deadline.is-empty{background:var(--surface-sunken);color:var(--muted)}.feature-deadline.is-empty .fd-kicker{color:var(--success)}.feature-deadline.is-empty .fd-company{color:var(--ink);font-size:1.2rem}@media (width<=880px){.bento-row{grid-template-columns:1fr}}@media (width<=480px){.bento-tiles{grid-template-columns:1fr}}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.1rem;display:flex}.section-header h2{align-items:center;gap:.55rem;font-size:1.05rem;display:flex}.section-header .count-pill{font-family:var(--font-mono);color:var(--muted);background:var(--surface-sunken);border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:500}.filter-chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{background:var(--surface);border:1px solid var(--line-strong);color:var(--muted);cursor:pointer;border-radius:999px;padding:.32rem .75rem;font-size:.78rem;font-weight:500}.chip:hover{background:var(--surface-sunken);color:var(--ink)}.chip.active{background:var(--ink);border-color:var(--ink);color:var(--surface)}.all-contracts-section{margin-bottom:2.5rem}.days-selector{background:var(--surface-sunken);border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .4rem .3rem .85rem;display:flex}.days-selector span{color:var(--muted);font-size:.78rem}.days-selector label{display:none}.days-input{background:var(--surface);border:1px solid var(--line-strong);text-align:center;border-radius:999px;width:52px;padding:.25rem .6rem}.rail-timeline{margin-bottom:1.5rem;display:flex}.rail-track{background:var(--line-strong);flex-shrink:0;width:1px;margin-right:0}.deadline-list{flex-direction:column;flex:1;margin-left:22px;display:flex}.d-row{border-bottom:1px solid var(--line);grid-template-columns:76px 1fr auto auto;align-items:center;gap:16px;padding:13px 0;display:grid;position:relative}.d-row:last-child{border-bottom:none}.d-row:before{content:"";background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;top:50%;left:-22px;transform:translate(-50%,-50%)}.d-row.calm:before{border-color:var(--line-strong)}.d-date{font-family:var(--font-mono);color:var(--accent-ink);font-size:.78rem;font-weight:500}.d-row.calm .d-date{color:var(--muted)}.d-info .company{font-size:.92rem;font-weight:500}.d-info .type{color:var(--muted);margin-top:1px;font-size:.78rem}.d-badge{font-size:.7rem;font-weight:500;font-family:var(--font-mono);letter-spacing:.01em;white-space:nowrap;border-radius:999px;padding:.2rem .6rem}.d-badge.urgent{background:var(--danger-soft);color:var(--danger)}.d-badge.soon{background:var(--warning-soft);color:var(--warning)}.d-link{color:var(--muted);font-size:.78rem;font-weight:500;text-decoration:none}.d-link:hover{color:var(--accent)}@media (width<=640px){.d-row{grid-template-columns:64px 1fr auto}.d-link{display:none}}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;width:100%;display:grid}.card{background:var(--surface);border-radius:var(--radius-md);border:1px solid var(--line);border-left:3px solid var(--cat-other);padding:1.15rem 1.3rem;transition:border-color .15s,box-shadow .15s,transform .15s}.card:hover{border-color:var(--line-strong);border-left-color:var(--cat-other);transform:translateY(-1px)}.card.is-inactive{background:var(--surface-sunken)}.card.cat-mobile{border-left-color:var(--cat-mobile)}.card.cat-internet{border-left-color:var(--cat-internet)}.card.cat-insurance{border-left-color:var(--cat-insurance)}.card.cat-lease{border-left-color:var(--cat-lease)}.card.cat-saas{border-left-color:var(--cat-saas)}.card.cat-electricity{border-left-color:var(--cat-electricity)}.card-top{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.9rem;display:flex}.card-top-id{align-items:center;gap:.6rem;min-width:0;display:flex}.cat-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.85rem;display:flex}.cat-icon.cat-mobile{background:var(--cat-mobile-soft);color:var(--cat-mobile)}.cat-icon.cat-internet{background:var(--cat-internet-soft);color:var(--cat-internet)}.cat-icon.cat-insurance{background:var(--cat-insurance-soft);color:var(--cat-insurance)}.cat-icon.cat-lease{background:var(--cat-lease-soft);color:var(--cat-lease)}.cat-icon.cat-saas{background:var(--cat-saas-soft);color:var(--cat-saas)}.cat-icon.cat-electricity{background:var(--cat-electricity-soft);color:var(--cat-electricity)}.cat-icon.cat-other{background:var(--cat-other-soft);color:var(--cat-other)}.card-top h3{font-size:1.05rem;font-weight:500;line-height:1.2}.card-top .card-type-label{color:var(--muted);margin-top:1px;font-size:.72rem}.stamp-group{flex-shrink:0;align-items:center;gap:.4rem;display:flex}.stamp{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:4px;padding:.2rem .5rem;font-size:.62rem;font-weight:500}.stamp.active{color:var(--success)}.stamp.inactive{color:var(--faint)}.status-toggle{border-radius:4px;width:auto;padding:.2rem .55rem;font-size:.68rem;font-weight:500}.status-toggle.to-deactivate{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-soft)}.status-toggle.to-activate{background:var(--success-soft);color:var(--success);border-color:var(--success-soft)}.status-toggle.to-deactivate:hover{background:#f6e7c2}.status-toggle.to-activate:hover{background:#d6ece0}.card-rows{flex-direction:column;gap:.45rem;font-size:.85rem;display:flex}.card-rows .r{color:var(--muted);justify-content:space-between;display:flex}.card-rows .r b{color:var(--ink);font-weight:500;font-family:var(--font-mono);font-size:.82rem}.card-actions{border-top:1px solid var(--line);align-items:center;gap:1.1rem;margin-top:1rem;padding-top:.9rem;display:flex}.card-actions a{color:var(--muted);font-size:.82rem;font-weight:500;text-decoration:none}.card-actions a:hover{color:var(--accent)}.card-actions .delete-link{color:var(--danger);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0;font-size:.82rem;font-weight:500}.card-actions .delete-link:hover{background:0 0;text-decoration:underline}.empty-note{text-align:center;color:var(--muted);background:var(--surface-sunken);border-radius:var(--radius-md);padding:2rem;font-size:.88rem}.empty-state{text-align:center;background:var(--surface-sunken);border-radius:var(--radius-lg);margin-top:1rem;padding:3rem 2rem}.empty-icon{border:1.5px solid var(--success);width:36px;height:36px;color:var(--success);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;font-size:1rem;display:flex}.empty-state p{color:var(--muted);font-size:.92rem}.empty-hint{color:var(--faint);margin-top:.4rem;font-size:.8rem}.pagination{justify-content:center;align-items:center;gap:1.25rem;margin-top:2rem;margin-bottom:1rem;display:flex}.pagination-btn{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);cursor:pointer;border-radius:999px;padding:.45rem .95rem;font-size:.85rem}.pagination-btn:hover:not(:disabled){background:var(--surface-sunken)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.page-info{color:var(--muted);font-family:var(--font-mono);font-size:.78rem}.loading{text-align:center;color:var(--muted);padding:2rem;font-size:.88rem}.center{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.form-container{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--line);max-width:580px;padding:1.75rem 2rem}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--muted);margin-bottom:.45rem;font-size:.85rem;font-weight:500;display:block}.required-mark{color:var(--accent)}.form-group input{width:100%}.field-error{color:var(--danger);margin-top:.35rem;font-size:.78rem;display:block}.checkbox-group{margin-top:.25rem}.checkbox-label{cursor:pointer;color:var(--ink);align-items:center;gap:.55rem;font-size:.88rem;font-weight:400;display:flex}.checkbox-label input{width:auto;accent-color:var(--accent);margin:0}.pdf-container{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--line);height:calc(100vh - 160px);overflow:hidden}.pdf-container iframe{border:none;width:100%;height:100%}.box{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--line);flex-direction:column;gap:1rem;width:100%;max-width:380px;padding:2rem;display:flex}.box h2{font-size:1.4rem}.box .auth-sub{color:var(--muted);margin-top:-.6rem;font-size:.85rem}.auth-links{justify-content:space-between;gap:1rem;margin-top:.5rem;font-size:.83rem;display:flex}.auth-links a{font-weight:500;text-decoration:none}.auth-links a.muted-link{color:var(--faint)}.auth-links a:not(.muted-link){color:var(--accent)}.auth-links a:hover{text-decoration:underline}.top-bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1.1rem 2.5rem;display:flex}.logo{font-family:var(--font-display);color:var(--ink);font-size:1.1rem;font-weight:600}.logo .accent-dot{color:var(--accent)}.landing-hero{grid-template-columns:1.05fr .95fr;align-items:center;gap:3rem;max-width:1140px;min-height:calc(100vh - 280px);margin:0 auto;padding:4rem 2.5rem 3rem;display:grid}.landing-hero-copy{text-align:left}.hero-kicker{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;font-size:.75rem}.landing-hero-copy h1{color:var(--ink);margin-bottom:1rem;font-size:clamp(2.1rem,4.4vw,3.1rem);line-height:1.08}.tagline{color:var(--muted);max-width:440px;font-size:1.02rem}.hero-cta{gap:.75rem;margin-top:1.75rem;display:flex}.hero-cta button{padding:.75rem 1.5rem}.landing-hero-mockup{flex-direction:column;gap:.85rem;display:flex}.mockup-feature{background:var(--ink);border-radius:var(--radius-lg);color:#f4f1ea;padding:1.4rem 1.6rem}.mockup-feature .fd-bottom{margin-top:1.1rem}.mockup-rail{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:.4rem 1.2rem}.mockup-row{border-bottom:1px solid var(--line);grid-template-columns:50px 8px 1fr auto;align-items:center;gap:12px;padding:.7rem 0;display:grid}.mockup-row:last-child{border-bottom:none}.mockup-date{font-family:var(--font-mono);color:var(--muted);font-size:.7rem}.mockup-row.calm .mockup-date{color:var(--faint)}.mockup-dot{background:var(--cat-other);border-radius:50%;width:8px;height:8px}.mockup-dot.cat-mobile{background:var(--cat-mobile)}.mockup-dot.cat-internet{background:var(--cat-internet)}.mockup-dot.cat-insurance{background:var(--cat-insurance)}.mockup-dot.cat-lease{background:var(--cat-lease)}.mockup-dot.cat-saas{background:var(--cat-saas)}.mockup-dot.cat-electricity{background:var(--cat-electricity)}.mockup-company{color:var(--ink);font-size:.85rem;font-weight:500}.landing-body{max-width:1140px;margin:0 auto;padding:1rem 2.5rem 3rem}.section-eyebrow{font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--faint);border-top:1px solid var(--line);margin-bottom:1rem;padding-top:2rem;font-size:.72rem}.features{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);grid-template-columns:repeat(4,1fr);gap:1px;width:100%;margin:0 0 2rem;display:grid;overflow:hidden}.feature{background:var(--surface);text-align:left;padding:1.25rem 1.1rem}.feature-icon{width:30px;height:30px;font-family:var(--font-mono);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.8rem;font-size:.72rem;font-weight:500;display:flex}.feature-icon.cat-other{background:var(--accent-soft);color:var(--accent-ink)}.feature-icon.cat-lease{background:var(--cat-lease-soft);color:var(--cat-lease)}.feature-icon.cat-internet{background:var(--cat-internet-soft);color:var(--cat-internet)}.feature-icon.cat-insurance{background:var(--cat-insurance-soft);color:var(--cat-insurance)}.feature h3{margin:0 0 .3rem;font-size:.92rem}.feature p{color:var(--muted);font-size:.78rem}.bottom-note{color:var(--faint);border-top:1px solid var(--line);text-align:left;max-width:480px;margin-top:.5rem;padding-top:1.5rem;font-size:.8rem;line-height:1.5}.bottom-note a{color:var(--accent);text-decoration:none}.bottom-note a:hover{text-decoration:underline}@media (width<=768px){.sidebar{width:72px;padding:1.25rem 0}.sidebar-brand,.user-info,.sidebar-nav a span.label{display:none}.sidebar-nav a{justify-content:center;padding:.7rem}.sidebar-nav a .nav-dot{display:none}.logout-btn{margin:.5rem;padding:.6rem}.main{padding:1.5rem 1.25rem}.features{grid-template-columns:repeat(2,1fr)}.section-header{align-items:flex-start}.landing-hero{grid-template-columns:1fr;min-height:auto;padding:2.5rem 1.5rem}.landing-body{padding:1rem 1.5rem 2.5rem}}@media (width<=480px){.stat-row{grid-template-columns:repeat(2,1fr)}.features{grid-template-columns:1fr}.top-bar{padding:.9rem 1.25rem}.mockup-row{grid-template-columns:44px 8px 1fr auto;gap:8px}}
