:root{--c-navy-900: #0f1e33;--c-navy-800: #16294a;--c-navy-700: #1e3a5f;--c-slate-50: #f8fafc;--c-slate-100: #f1f5f9;--c-slate-200: #e2e8f0;--c-slate-300: #cbd5e1;--c-slate-400: #94a3b8;--c-slate-500: #64748b;--c-slate-600: #475569;--c-slate-700: #334155;--c-slate-800: #1e293b;--c-slate-900: #0f172a;--c-accent: #2dd4bf;--c-accent-strong: #0d9488;--c-accent-soft: #ccfbf1;--c-success: #16a34a;--c-success-soft: #dcfce7;--c-warning: #d97706;--c-warning-soft: #fef3c7;--c-danger: #dc2626;--c-danger-soft: #fee2e2;--c-info: #2563eb;--c-info-soft: #dbeafe;--c-bg: var(--c-slate-100);--c-surface: #ffffff;--c-border: var(--c-slate-200);--c-text: var(--c-slate-800);--c-text-muted: var(--c-slate-500);--c-text-invert: #ffffff;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 40px;--sp-8: 48px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-full: 999px;--sh-sm: 0 1px 2px rgba(15, 30, 51, .06), 0 1px 3px rgba(15, 30, 51, .08);--sh-md: 0 4px 12px rgba(15, 30, 51, .1);--sh-lg: 0 12px 32px rgba(15, 30, 51, .16);--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--topbar-h: 56px;--bottomnav-h: 60px;--content-max: 960px}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}img,svg{display:block;max-width:100%}input,select,textarea,button{font:inherit;font-size:max(1rem,16px);color:inherit}button{cursor:pointer;background:none;border:none;padding:0}a{color:var(--c-accent-strong);text-decoration:none}h1,h2,h3,h4{line-height:1.25;overflow-wrap:break-word}p{overflow-wrap:break-word}h1{font-size:var(--fs-2xl);font-weight:700;color:var(--c-navy-900)}h2{font-size:var(--fs-xl);font-weight:700;color:var(--c-navy-900)}h3{font-size:var(--fs-lg);font-weight:600;color:var(--c-navy-800)}.text-muted{color:var(--c-text-muted)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.page-title{font-size:var(--fs-xl);font-weight:700;color:var(--c-navy-900)}.app-content{width:100%;max-width:var(--content-max);margin-inline:auto;padding:var(--sp-4);padding-bottom:calc(var(--sp-6) + var(--bottomnav-h) + env(safe-area-inset-bottom,0px))}@media(min-width:768px){.app-content{padding:var(--sp-5);padding-bottom:var(--sp-6)}}.stack{display:flex;flex-direction:column;gap:var(--sp-3)}.stack--lg{gap:var(--sp-4)}.row{display:flex;align-items:center;gap:var(--sp-2)}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.grow{flex:1 1 auto;min-width:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:var(--sp-4)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:44px;padding:0 var(--sp-4);border-radius:var(--r-md);font-weight:600;font-size:max(1rem,16px);border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap}.btn:focus-visible{outline:2px solid var(--c-accent-strong);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--c-navy-800);color:var(--c-text-invert)}.btn--primary:hover:not(:disabled){background:var(--c-navy-700)}.btn--accent{background:var(--c-accent-strong);color:var(--c-text-invert)}.btn--accent:hover:not(:disabled){background:#0f766e}.btn--ghost{background:transparent;color:var(--c-slate-600);border-color:var(--c-border)}.btn--ghost:hover:not(:disabled){background:var(--c-slate-100);color:var(--c-slate-800)}.btn--danger{background:var(--c-danger);color:var(--c-text-invert)}.btn--danger:hover:not(:disabled){background:#b91c1c}.btn--icon{min-width:44px;padding:0;color:var(--c-slate-500);border-radius:var(--r-md)}.btn--icon:hover:not(:disabled){background:var(--c-slate-100);color:var(--c-slate-700)}.btn--sm{min-height:36px;padding:0 var(--sp-3);font-size:var(--fs-sm)}.field{display:flex;flex-direction:column;gap:var(--sp-1)}.field>label{font-size:var(--fs-sm);font-weight:600;color:var(--c-slate-600)}.input,.select,.textarea{width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border:1px solid var(--c-slate-300);border-radius:var(--r-md);background:var(--c-surface);color:var(--c-text)}.input::placeholder,.select::placeholder,.textarea::placeholder{color:var(--c-slate-400)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--c-accent-strong);box-shadow:0 0 0 3px #0d948826}.textarea{resize:vertical;min-height:80px}.badge{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;line-height:1.6;background:var(--c-slate-100);color:var(--c-slate-600);white-space:nowrap}.badge--accent{background:var(--c-accent-soft);color:var(--c-accent-strong)}.badge--info{background:var(--c-info-soft);color:var(--c-info)}.badge--success{background:var(--c-success-soft);color:var(--c-success)}.badge--warning{background:var(--c-warning-soft);color:var(--c-warning)}.badge--danger{background:var(--c-danger-soft);color:var(--c-danger)}.chip{display:inline-flex;align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-xs);font-weight:500;background:var(--c-slate-100);color:var(--c-slate-500);border:1px solid var(--c-border);white-space:nowrap}.avatar{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:var(--r-full);font-weight:700;font-size:var(--fs-sm);background:var(--c-slate-100);color:var(--c-slate-600)}.avatar[data-tone="0"]{background:var(--c-accent-soft);color:var(--c-accent-strong)}.avatar[data-tone="1"]{background:var(--c-info-soft);color:var(--c-info)}.avatar[data-tone="2"]{background:var(--c-warning-soft);color:var(--c-warning)}.avatar[data-tone="3"]{background:var(--c-success-soft);color:var(--c-success)}.avatar[data-tone="4"]{background:#ede9fe;color:#7c3aed}.avatar[data-tone="5"]{background:#ffe4e6;color:#e11d48}.notice{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--fs-sm);font-weight:600}.notice--accent{background:var(--c-accent-soft);color:var(--c-accent-strong)}.notice--success{background:var(--c-success-soft);color:var(--c-success)}.notice--warning{background:var(--c-warning-soft);border:1px solid var(--c-warning);color:var(--c-slate-800)}.notice--danger{background:var(--c-danger-soft);color:var(--c-danger)}.check-row{display:flex;align-items:center;gap:var(--sp-2);min-height:44px;font-size:var(--fs-sm);font-weight:600;color:var(--c-slate-700);cursor:pointer}.check-row input{width:18px;height:18px;flex-shrink:0;accent-color:var(--c-accent-strong)}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table th,.data-table td{padding:var(--sp-2);text-align:left;border-bottom:1px solid var(--c-border);white-space:nowrap}.data-table thead th{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--c-text-muted)}.data-table tbody th{font-weight:600;color:var(--c-navy-900)}.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:none}.day-row{display:flex;flex-direction:column;gap:var(--sp-1);padding-bottom:var(--sp-2);border-bottom:1px solid var(--c-border)}.day-row:last-child{border-bottom:none;padding-bottom:0}@media(min-width:768px){.day-row{flex-direction:row;align-items:baseline;gap:var(--sp-3)}}.day-row__label{flex-shrink:0;min-width:7.5rem;text-align:left;font-size:var(--fs-sm);font-weight:700;color:var(--c-navy-800)}.day-row__items{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.menu{position:absolute;top:calc(100% + 8px);right:0;z-index:40;min-width:240px;padding:var(--sp-1);background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-lg)}.menu button{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:44px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);text-align:left;font-size:var(--fs-sm);font-weight:600;color:var(--c-slate-700)}.menu button svg{flex-shrink:0;color:var(--c-slate-400)}.menu button:hover{background:var(--c-slate-100)}.menu__head{display:flex;flex-direction:column;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--c-border);margin-bottom:var(--sp-1)}.menu__head strong{color:var(--c-navy-900)}.menu__head span{font-size:var(--fs-xs);color:var(--c-text-muted)}.menu__error{padding:var(--sp-1) var(--sp-3) var(--sp-2);font-size:var(--fs-xs);color:var(--c-danger)}.seg{display:flex;border:1px solid var(--c-slate-300);border-radius:var(--r-md);overflow:hidden;background:var(--c-surface)}.seg button{flex:1;min-height:44px;padding:0 var(--sp-2);font-size:var(--fs-sm);font-weight:600;color:var(--c-slate-500);background:transparent;border-right:1px solid var(--c-slate-200)}.seg button:last-child{border-right:none}.seg button:focus-visible{outline:2px solid var(--c-accent-strong);outline-offset:-2px}.seg button.is-active{background:var(--c-navy-800);color:var(--c-text-invert)}.cdk-drag-preview{box-shadow:var(--sh-lg);border-radius:var(--r-lg);opacity:.95}.cdk-drag-placeholder{opacity:.35}.cdk-drop-list-dragging app-task-card:not(.cdk-drag-placeholder){transition:transform .2s ease}.dialog{border:none;padding:0;background:var(--c-surface);color:var(--c-text);box-shadow:var(--sh-lg);width:100%;overflow:hidden}.dialog::backdrop{background:#0f172a80}.dialog{margin:auto 0 0;max-width:100%;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:calc(100dvh - var(--sp-6))}@media(min-width:768px){.dialog{margin:auto;max-width:520px;border-radius:var(--r-lg)}}.dialog__header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--c-border)}.dialog__header h2{font-size:var(--fs-lg)}.dialog__body{padding:var(--sp-4);overflow-y:auto;max-height:calc(100dvh - var(--sp-6) - 140px)}.dialog__footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--c-border);padding-bottom:calc(var(--sp-3) + env(safe-area-inset-bottom,0px))}@media(min-width:768px){.dialog__footer{padding-bottom:var(--sp-3)}}
