@charset "UTF-8";:root{color-scheme:dark;--nox-background: #09090b;--nox-background-secondary: #0f0f12;--nox-sidebar: #0b0b0e;--nox-surface: #151518;--nox-surface-raised: #1a1a1e;--nox-surface-hover: #202025;--nox-surface-active: #27272d;--nox-field: #111114;--nox-border: #303038;--nox-border-subtle: #222228;--nox-border-strong: #45454f;--nox-text-primary: #f7f7f8;--nox-text-secondary: #b8bac2;--nox-text-muted: #7c7f89;--nox-accent: #d4af37;--nox-accent-hover: #e0be4d;--nox-accent-active: #bd9829;--nox-accent-muted: rgb(212 175 55 / 10%);--nox-accent-soft: rgb(212 175 55 / 6%);--nox-success: #2dbd73;--nox-warning: #f5a524;--nox-error: #e5484d;--nox-info: #5b8def;--font-body: Inter, "Segoe UI Variable", "Segoe UI", Arial, sans-serif;--font-display: Inter, "Segoe UI Variable", "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", Consolas, monospace;--font-xs: .75rem;--font-sm: .8125rem;--font-base: .9375rem;--font-lg: 1.125rem;--font-xl: 1.5rem;--font-2xl: 2rem;--line-tight: 1.15;--line-normal: 1.55;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--shadow-sm: 0 1px 2px rgb(0 0 0 / 20%), 0 6px 18px rgb(0 0 0 / 10%);--shadow-md: 0 16px 42px rgb(0 0 0 / 28%);--shadow-lg: 0 28px 80px rgb(0 0 0 / 48%);--transition-fast: .14s cubic-bezier(.2,.8,.2,1);--transition: .2s cubic-bezier(.2,.8,.2,1);--content-max: 1360px;font-family:var(--font-body);color:var(--nox-text-primary);background:var(--nox-background);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;min-height:100%;overflow-x:hidden;background:var(--nox-background)}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:radial-gradient(circle at 72% -12%,rgba(212,175,55,.05),transparent 28rem),var(--nox-background)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{margin-bottom:.55rem;font-size:clamp(2rem,4vw,2.8rem);font-weight:700;line-height:var(--line-tight);letter-spacing:-.052em}h2{margin-bottom:.65rem;font-size:clamp(1.12rem,2vw,1.35rem);font-weight:650;letter-spacing:-.025em}h3{margin-bottom:.4rem;font-size:1rem}p{line-height:var(--line-normal)}svg{display:block}.sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--nox-accent);outline-offset:3px}::selection{color:#171307;background:var(--nox-accent)}.page{display:grid;gap:clamp(1rem,2vw,1.6rem);animation:page-in .26s cubic-bezier(.2,.8,.2,1)}.page-header{display:flex;min-height:5.5rem;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding-bottom:.45rem}.page-header>div:first-child{max-width:44rem}.page-header h1{margin-bottom:.45rem}.page-header p:last-child{margin-bottom:0}.eyebrow{margin-bottom:.6rem;color:var(--nox-accent);font:600 .6875rem/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.muted,.page-intro{color:var(--nox-text-secondary)}.page-intro{max-width:42rem;font-size:.875rem}.subtle{color:var(--nox-text-muted)}.mono{font-family:var(--font-mono)}.card{border:1px solid var(--nox-border-subtle);border-radius:var(--radius-xl);padding:clamp(1rem,2.4vw,1.5rem);background:linear-gradient(145deg,rgba(255,255,255,.014),transparent 35%),var(--nox-surface);box-shadow:var(--shadow-sm)}.card.interactive{transition:border-color var(--transition),background var(--transition),transform var(--transition),box-shadow var(--transition)}.card.interactive:hover{border-color:var(--nox-border);background:var(--nox-surface-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-head h2,.section-head p{margin-bottom:0}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.two-column{display:grid;gap:1.2rem;grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);align-items:start}.three-column{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr))}.button,button.primary,button.secondary,button.tertiary,button.danger{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.5rem;border:1px solid transparent;border-radius:var(--radius-md);padding:.68rem 1rem;font-size:.8125rem;font-weight:700;text-decoration:none;transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.button:hover,button.primary:hover,button.secondary:hover{transform:translateY(-1px)}.button,button.primary{border-color:#e2c35c;color:#171307;background:linear-gradient(180deg,#e0be4d,#cda630);box-shadow:inset 0 1px #ffffff4d,0 5px 16px #d4af371f}.button:hover,button.primary:hover{background:linear-gradient(180deg,#e8ca66,var(--nox-accent));box-shadow:inset 0 1px #ffffff59,0 8px 22px #d4af372e}.button:active,button.primary:active{background:var(--nox-accent-active);box-shadow:none;transform:translateY(0)}.button.secondary,button.secondary{border-color:var(--nox-border);color:var(--nox-text-primary);background:linear-gradient(180deg,var(--nox-surface-hover),var(--nox-surface-raised));box-shadow:inset 0 1px #ffffff08}.button.secondary:hover,button.secondary:hover{border-color:var(--nox-border-strong);background:var(--nox-surface-active)}button.tertiary{padding-inline:.65rem;color:var(--nox-text-secondary);background:transparent}button.tertiary:hover{color:var(--nox-text-primary);background:var(--nox-surface-hover)}button.danger{color:var(--nox-error);background:transparent}button.danger:hover{background:#e5484d1a}.icon-button{display:grid;width:2.75rem;height:2.75rem;place-items:center;border:1px solid var(--nox-border);border-radius:var(--radius-md);color:var(--nox-text-secondary);background:var(--nox-surface-raised);transition:var(--transition-fast)}.icon-button:hover{border-color:var(--nox-border-strong);color:var(--nox-text-primary);background:var(--nox-surface-hover)}.icon-button svg,.button svg,button svg{width:1rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}label{display:grid;gap:.5rem;color:var(--nox-text-secondary);font-size:.75rem;font-weight:600}input,select,textarea{width:100%;min-height:2.9rem;border:1px solid var(--nox-border);border-radius:var(--radius-md);padding:.68rem .82rem;outline:none;color:var(--nox-text-primary);background:var(--nox-field);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}textarea{min-height:6rem;resize:vertical}input:hover,select:hover,textarea:hover{border-color:var(--nox-border-strong);background:#141418}input:focus,select:focus,textarea:focus{border-color:var(--nox-accent);background:#141418;box-shadow:0 0 0 3px var(--nox-accent-muted)}select option{color:var(--nox-text-primary);background:#18181c}input[type=checkbox]{width:1.1rem;min-height:1.1rem;accent-color:var(--nox-accent)}input.ng-invalid.ng-touched,select.ng-invalid.ng-touched{border-color:var(--nox-error)}.form-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full{grid-column:1/-1}.badge{display:inline-flex;min-height:1.7rem;align-items:center;gap:.4rem;border:1px solid var(--nox-border);border-radius:999px;padding:.24rem .62rem;color:var(--nox-text-secondary);background:var(--nox-field);font-size:.6875rem;font-weight:650;white-space:nowrap}.badge.success{border-color:#2dbd7340;color:var(--nox-success);background:#2dbd7317}.badge.warning{border-color:#f5a52440;color:var(--nox-warning);background:#f5a52417}.badge.error{border-color:#e5484d40;color:var(--nox-error);background:#e5484d17}.status-dot{width:.42rem;height:.42rem;border-radius:50%;background:currentColor}.priority{display:inline-flex;align-items:center;gap:.38rem;color:var(--nox-text-secondary);font-size:.7rem;font-weight:650}.priority:before{width:.4rem;height:.4rem;border-radius:50%;background:var(--nox-info);content:""}.priority.high:before{background:var(--nox-error)}.priority.low:before{background:var(--nox-text-muted)}.error,.success-message{border:1px solid;border-radius:var(--radius-md);padding:.8rem 1rem;font-size:.78rem}.error{border-color:#e5484d47;color:#ff9ea1;background:#e5484d17}.success-message{border-color:#2dbd7347;color:#75d9a4;background:#2dbd7317}.empty{position:relative;display:grid;min-height:10rem;place-items:center;border:1px solid var(--nox-border-subtle);border-radius:var(--radius-lg);padding:2rem;color:var(--nox-text-muted);text-align:center;background:radial-gradient(circle at 50% 0,var(--nox-accent-soft),transparent 9rem),var(--nox-background-secondary)}.empty:before{display:grid;width:2.75rem;height:2.75rem;margin:0 auto .85rem;place-items:center;border:1px solid rgba(212,175,55,.18);border-radius:.8rem;color:var(--nox-accent);background:var(--nox-accent-muted);font:500 1.1rem var(--font-mono);content:"\25c7"}.empty>div{max-width:28rem}.loading-line{height:.2rem;overflow:hidden;border-radius:99px;background:var(--nox-border-subtle)}.loading-line:after{display:block;width:35%;height:100%;background:var(--nox-accent);animation:loading 1.1s ease-in-out infinite;content:""}.progress{height:.42rem;overflow:hidden;border-radius:99px;background:var(--nox-border-subtle);box-shadow:inset 0 1px 2px #00000059}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b58e24,#e2c458);transition:width .42s cubic-bezier(.2,.8,.2,1)}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem;background:#000000c2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fade-in .18s ease}.modal{width:min(42rem,100%);max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid var(--nox-border);border-radius:var(--radius-xl);background:var(--nox-surface-raised);box-shadow:var(--shadow-lg);animation:modal-in var(--transition)}.modal.wide{width:min(64rem,100%)}.modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--nox-border-subtle);padding:1.25rem 1.4rem;background:#1a1a1ef0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.modal-head h2,.modal-head p{margin-bottom:0}.modal-body{padding:1.4rem}.modal-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:.6rem;border-top:1px solid var(--nox-border-subtle);padding:1rem 1.4rem;background:#1a1a1ef5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toolbar{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.search{position:relative;flex:1 1 15rem}.search input{padding-left:2.3rem}.search svg{position:absolute;top:50%;left:.8rem;width:.95rem;fill:none;stroke:var(--nox-text-muted);stroke-width:2;transform:translateY(-50%)}.toolbar select{width:auto;min-width:10rem}@keyframes page-in{0%{opacity:0;transform:translateY(5px)}}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.985)}}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(300%)}}@media(max-width:900px){.two-column,.three-column{grid-template-columns:1fr}}@media(max-width:650px){h1{font-size:clamp(1.75rem,8vw,2.15rem)}.page{gap:1rem}.page-header{align-items:stretch}.page-header .actions>*{flex:1}.form-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.toolbar select{width:100%}.modal-backdrop{align-items:end;padding:0}.modal{width:100%;max-height:calc(100dvh - 3.5rem);border-radius:1.15rem 1.15rem 0 0;padding-bottom:env(safe-area-inset-bottom)}.modal-actions>button{min-width:0;flex:1}}.tasks-page .state-select{position:relative;display:flex;align-items:center}.tasks-page .state-select .status-dot{position:absolute;left:.72rem;z-index:1;pointer-events:none}.tasks-page .state-select select{width:100%;min-height:2.5rem;border:1px solid var(--nox-border);border-radius:var(--radius-md);padding:.45rem 1.9rem .45rem 1.45rem;color:var(--nox-text-primary);background:var(--nox-field);font-size:.66rem}.tasks-page .state-select select:hover{border-color:var(--nox-border-strong);background:#141418}.tasks-page .state-select select:focus{border-color:var(--nox-accent);box-shadow:0 0 0 3px var(--nox-accent-muted)}.tasks-page .readonly-state{width:fit-content;min-height:2.5rem;padding-inline:.7rem}.tasks-page .shared-task{color:var(--nox-accent);font-weight:700}.tasks-page .column-empty{margin:.5rem;color:var(--nox-text-muted);font-size:.65rem;text-align:center}@media(max-width:1000px){.tasks-page .table-head{display:none}.tasks-page .table-row{grid-template-columns:minmax(0,1fr) 8rem 4.5rem;padding-left:3rem}.tasks-page .project-cell{display:none}.tasks-page .row-actions{opacity:1}}@media(max-width:650px){.tasks-page .page-header .actions{width:100%;justify-content:space-between}.tasks-page .task-table{overflow:visible;border:0;background:transparent;box-shadow:none}.tasks-page .table-row{display:grid;min-height:10.3rem;grid-template-areas:"check title actions" ". project actions" ". state due";grid-template-columns:1.15rem minmax(0,1fr) auto;gap:.65rem .7rem;margin-bottom:.7rem;border:1px solid var(--nox-border-subtle);border-radius:.9rem;padding:1rem;background:radial-gradient(circle at 100% 0,rgba(219,183,91,.05),transparent 38%),linear-gradient(145deg,var(--nox-surface-raised),var(--nox-surface));box-shadow:var(--shadow-card)}.tasks-page .completion{position:static;grid-area:check;align-self:start;margin-top:.1rem}.tasks-page .task-title{grid-area:title}.tasks-page .task-title>strong{font-size:.83rem;white-space:normal}.tasks-page .project-cell{display:flex;grid-area:project}.tasks-page .state-select{width:fit-content;max-width:100%;grid-area:state}.tasks-page .due-cell{grid-area:due;align-self:center;border-radius:99px;padding:.32rem .5rem;background:var(--nox-background-secondary);font-size:.58rem;white-space:nowrap}.tasks-page .row-actions{display:grid;grid-area:actions;align-self:start}.tasks-page .icon-action{width:2.5rem;height:2.5rem;border:1px solid var(--nox-border-subtle);background:var(--nox-background-secondary)}.tasks-page .result-count{width:100%;margin:0}.task-detail .facts dl{grid-template-columns:1fr 1fr}.task-detail .time-form{grid-template-columns:5rem 1fr}.task-detail .time-form button{grid-column:1/-1}.task-detail .inline-form{flex-direction:column}.task-detail .detail-head{height:3.9rem;padding-inline:1rem}.task-detail .detail-scroll{height:calc(100dvh - 3.9rem)}.task-detail .detail-title,.task-detail .detail-section{padding:1.1rem}.task-detail .detail-title h2{font-size:1.3rem}}@media(max-width:400px){.tasks-page .view-switch button{padding:0 .6rem}.tasks-page .primary{padding-inline:.7rem}.task-detail .facts dl{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}
