:root{--navy-950:#07111f;--navy-900:#0b1628;--navy-800:#15243a;--slate-700:#334155;--slate-500:#64748b;--slate-400:#94a3b8;--slate-300:#cbd5e1;--slate-100:#f1f5f9;--accent:#60a5fa;--accent-strong:#3b82f6;--success:#34d399;--danger:#fb7185;--surface-soft:rgba(21,36,58,.84);--border:rgba(148,163,184,.18);--shadow:0 24px 70px rgba(0,0,0,.32)}
*{box-sizing:border-box}html{color-scheme:dark}
body{min-height:100vh!important;margin:0!important;color:var(--slate-100)!important;font-family:Inter,"Segoe UI","Noto Sans JP",sans-serif!important;background:radial-gradient(circle at 12% 0%,rgba(59,130,246,.15),transparent 32%),radial-gradient(circle at 90% 90%,rgba(100,116,139,.12),transparent 34%),linear-gradient(145deg,var(--navy-950),#0a1423 52%,#111827) fixed!important}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px}
.container{width:min(1180px,calc(100% - 40px))!important;max-width:1180px!important}
.card,.card-layout,.register-box,.login-panel{color:var(--slate-100)!important;background:linear-gradient(155deg,rgba(21,36,58,.97),rgba(11,22,40,.97))!important;border:1px solid var(--border)!important;border-radius:22px!important;box-shadow:var(--shadow)!important;backdrop-filter:blur(18px)}
.header-wrapper,.add-section,.mobile-card,.summary-card{background:var(--surface-soft)!important;border:1px solid var(--border)!important;border-radius:16px!important;box-shadow:0 12px 30px rgba(0,0,0,.2)!important}
h1,h2,h3,.page-title,.login-title,.register-title,.month,.mobile-title,.summary-title,.category-name{color:#f8fafc!important;letter-spacing:-.025em}
.page-title::after{content:"";display:block;width:42px;height:3px;margin:12px auto 0;border-radius:10px;background:var(--accent)}
p,label,.form-label,.description,.login-subtitle,.register-subtitle,.summary-label,.mobile-category,.empty-message{color:var(--slate-400)!important}a{color:#93c5fd}
input:not([type="hidden"]):not([type="checkbox"]),select,textarea{color:var(--slate-100)!important;background:rgba(7,17,31,.72)!important;border:1px solid rgba(148,163,184,.25)!important;border-radius:11px!important;outline:none!important;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease!important}
input:not([type="hidden"]):not([type="checkbox"]):focus,select:focus,textarea:focus{border-color:var(--accent)!important;background:rgba(7,17,31,.95)!important;box-shadow:0 0 0 4px rgba(96,165,250,.13)!important}
input::placeholder,textarea::placeholder{color:var(--slate-500)!important}select option{background:var(--navy-900);color:var(--slate-100)}input[type="file"]{padding:8px!important;max-width:230px}input[type="file"]::file-selector-button{margin-right:10px;padding:8px 12px;border:0;border-radius:8px;color:var(--slate-100);background:var(--slate-700);cursor:pointer}
.btn,.back-btn,.nav-btn,.login-btn,.register-btn,.logout-btn{border:1px solid transparent!important;border-radius:10px!important;font-weight:700!important;letter-spacing:.01em;box-shadow:none!important;transition:transform .18s ease,border-color .18s ease,background .18s ease!important}
.btn:hover,.back-btn:hover,.nav-btn:hover,.login-btn:hover,.register-btn:hover,.logout-btn:hover{transform:translateY(-1px)!important}
.primary,.login-btn,.register-btn{color:white!important;background:linear-gradient(135deg,var(--accent-strong),#2563eb)!important;border-color:rgba(147,197,253,.35)!important}
.secondary,.back-btn,.nav-btn{color:var(--slate-300)!important;background:rgba(51,65,85,.55)!important;border-color:rgba(148,163,184,.22)!important}.secondary:hover,.back-btn:hover,.nav-btn:hover{color:white!important;background:rgba(71,85,105,.82)!important}
.danger,.logout-btn{color:#fecdd3!important;background:rgba(190,24,93,.14)!important;border-color:rgba(251,113,133,.3)!important}
table{overflow:hidden;border:1px solid var(--border)!important;border-radius:14px!important}thead{color:var(--slate-300)!important;background:#101d31!important}th{color:var(--slate-300)!important;border-color:var(--border)!important}td{color:var(--slate-100)!important;border-color:var(--border)!important}tbody tr{background:rgba(7,17,31,.28)!important}tbody tr:nth-child(even){background:rgba(30,41,59,.28)!important}tbody tr:hover{background:rgba(59,130,246,.09)!important}
.filter{background:rgba(7,17,31,.42)!important;border:1px solid var(--border);border-radius:14px}.drag-handle{color:var(--slate-500)!important}.check-custom,.mobile-check-custom{border-color:var(--slate-500)!important;background:var(--navy-950)!important}.check-wrapper input:checked+.check-custom,.mobile-check-wrapper input:checked+.mobile-check-custom{background:var(--accent-strong)!important;border-color:var(--accent)!important}
.high-rate{color:var(--success)!important}.middle-rate{color:#fbbf24!important}.low-rate{color:var(--danger)!important}.import-message,.success-message{color:#a7f3d0!important;background:rgba(6,78,59,.42)!important;border:1px solid rgba(52,211,153,.25)!important}.import-error,.error-message{color:#fecdd3!important;background:rgba(136,19,55,.35)!important;border:1px solid rgba(251,113,133,.25)!important}
.left-panel{background:linear-gradient(150deg,#07111f,#13233a)!important;border-right:1px solid var(--border)}.logo,.feature-icon{background:rgba(59,130,246,.16)!important;color:#bfdbfe!important;border:1px solid rgba(96,165,250,.28)}.catch{color:#f8fafc!important}.password-toggle,.register-link a,.login-link a{color:#93c5fd!important}
@media(max-width:768px){body{padding:18px!important}.container{width:100%!important}.card,.card-layout,.register-box,.login-panel{border-radius:17px!important}.mobile-card,.summary-card{padding:18px!important}input[type="file"]{max-width:170px}}

/* Light gray, high-contrast theme */
html{color-scheme:light}
body{color:#172033!important;background:linear-gradient(145deg,#f5f7fa,#e9edf2 55%,#f1f4f7) fixed!important}
body::before{opacity:.45;background-image:linear-gradient(rgba(15,23,42,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.025) 1px,transparent 1px)}
.card,.card-layout,.register-box,.login-panel{color:#172033!important;background:rgba(255,255,255,.96)!important;border-color:#dce2ea!important;box-shadow:0 20px 55px rgba(15,23,42,.10)!important}
.header-wrapper,.add-section,.mobile-card,.summary-card{background:#f8fafc!important;border-color:#dce2ea!important;box-shadow:0 8px 24px rgba(15,23,42,.07)!important}
h1,h2,h3,.page-title,.login-title,.register-title,.month,.mobile-title,.summary-title,.category-name,.catch{color:#14213a!important}
p,label,.form-label,.description,.login-subtitle,.register-subtitle,.summary-label,.mobile-category,.empty-message{color:#596579!important}
input:not([type="hidden"]):not([type="checkbox"]),select,textarea{color:#172033!important;background:#fff!important;border-color:#cbd3df!important}
input:not([type="hidden"]):not([type="checkbox"]):focus,select:focus,textarea:focus{color:#172033!important;background:#fff!important;border-color:#3b82f6!important;box-shadow:0 0 0 4px rgba(59,130,246,.12)!important}
input::placeholder,textarea::placeholder{color:#8b96a8!important}select option{color:#172033;background:#fff}
input[type="file"]::file-selector-button{color:#27364d;background:#e2e8f0}
.secondary,.back-btn,.nav-btn{color:#334155!important;background:#eef2f7!important;border-color:#d6dde7!important}.secondary:hover,.back-btn:hover,.nav-btn:hover{color:#172033!important;background:#e2e8f0!important}
.danger,.logout-btn{color:#be123c!important;background:#fff1f2!important;border-color:#fecdd3!important}
table{border-color:#dce2ea!important}thead{color:#334155!important;background:#e8edf3!important}th{color:#334155!important;border-color:#dce2ea!important}td{color:#26344a!important;border-color:#e3e8ef!important}tbody tr{background:#fff!important}tbody tr:nth-child(even){background:#f8fafc!important}tbody tr:hover{background:#eff6ff!important}
.filter{background:#f3f6f9!important;border-color:#dce2ea}.drag-handle{color:#7b8798!important}.check-custom,.mobile-check-custom{border-color:#94a3b8!important;background:#fff!important}
.left-panel{background:linear-gradient(150deg,#e9eef5,#f8fafc)!important;border-right-color:#dce2ea}.logo,.feature-icon{background:#e8f1ff!important;color:#2563eb!important;border-color:#bfdbfe}
.import-message,.success-message{color:#047857!important;background:#ecfdf5!important;border-color:#a7f3d0!important}.import-error,.error-message{color:#be123c!important;background:#fff1f2!important;border-color:#fecdd3!important}
.left-panel .logo{color:#2563eb!important;background:transparent!important;border:0!important}
.left-panel .logo span{color:#475569!important}
.left-panel .feature-item{color:#334155!important;font-weight:600}
.left-panel .feature-icon{color:#2563eb!important;background:#e8f1ff!important}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:#172033!important;-webkit-box-shadow:0 0 0 1000px #fff inset!important;box-shadow:0 0 0 1000px #fff inset!important}
.left-panel{background:linear-gradient(145deg,#07111f 0%,#0d1b2e 55%,#152a46 100%)!important;border-right-color:rgba(148,163,184,.18)!important}
.left-panel .logo{color:#60a5fa!important}
.left-panel .logo span{color:#c4b5fd!important}
.left-panel .catch{color:#f8fafc!important}
.left-panel .description{color:#b8c3d4!important}
.left-panel .feature-item{color:#e2e8f0!important}
.left-panel .feature-icon{color:#93c5fd!important;background:rgba(59,130,246,.16)!important;border-color:rgba(147,197,253,.25)!important}

/* Main dashboard contrast */
.card-layout{background:#fff!important}
.header-wrapper{background:linear-gradient(135deg,#07111f,#10233d)!important;border-color:#203651!important;box-shadow:0 14px 34px rgba(7,17,31,.20)!important}
.header-wrapper .nav-btn{color:#e2e8f0!important;background:rgba(255,255,255,.09)!important;border-color:rgba(255,255,255,.14)!important}
.header-wrapper .nav-btn:hover{color:#fff!important;background:rgba(96,165,250,.22)!important}
.header-wrapper .date-input{color:#14213a!important;background:#fff!important;border-color:#d7dfeb!important;font-weight:700!important}
.filter a{color:#334155!important;background:#eef2f7!important;border:1px solid #dce2ea!important}
.filter a:hover{color:#172033!important;background:#e2e8f0!important}
.filter a.active{color:#fff!important;background:#17345b!important;border-color:#294e7d!important}
.habit-table thead,.habit-table th{color:#f8fafc!important;background:#10233d!important;border-color:#263b57!important}
.add-section{color:#26344a!important;background:#f8fafc!important}
.add-section h2,.add-section h3,.add-section label{color:#26344a!important}
.mobile-card{color:#26344a!important;background:#fff!important}
.mobile-card .mobile-title{color:#14213a!important}
.mobile-card .mobile-category{color:#64748b!important}
.mobile-check-text{color:#334155!important;background:#e8edf3!important}
.card-layout .btn.primary{color:#f8fafc!important;background:linear-gradient(135deg,#10233d,#17345b)!important;border-color:#294e7d!important;box-shadow:0 8px 18px rgba(7,17,31,.14)!important}
.card-layout .btn.primary:hover{background:linear-gradient(135deg,#17345b,#20466f)!important;border-color:#3b6595!important}

/* Monthly summary */
.monthly-page .card{background:#fff!important}
.monthly-page .card>.header{padding:16px 20px!important;background:linear-gradient(135deg,#07111f,#10233d)!important;border:1px solid #203651!important;border-radius:16px!important;box-shadow:0 14px 34px rgba(7,17,31,.18)!important}
.monthly-page .month{color:#f8fafc!important}
.monthly-page .header .nav-btn{color:#e2e8f0!important;background:rgba(255,255,255,.09)!important;border-color:rgba(255,255,255,.14)!important}
.monthly-page .header .nav-btn:hover{color:#fff!important;background:rgba(96,165,250,.22)!important}
.monthly-page .monthly-actions{gap:12px!important}
.monthly-page .monthly-actions .back-btn{color:#f8fafc!important;background:linear-gradient(135deg,#10233d,#17345b)!important;border-color:#294e7d!important;box-shadow:0 8px 18px rgba(7,17,31,.12)!important}
.monthly-page .monthly-actions .back-btn:hover{background:linear-gradient(135deg,#17345b,#20466f)!important;border-color:#3b6595!important}
.monthly-page .monthly-actions form{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important}
.monthly-page .monthly-actions input[type="file"]{width:360px!important;max-width:100%!important;min-height:46px!important}
.monthly-page table thead,.monthly-page table th{color:#f8fafc!important;background:#10233d!important;border-color:#263b57!important}
.monthly-page .summary-card{color:#26344a!important;background:#fff!important}
.monthly-page .summary-title{color:#14213a!important}
.monthly-page .summary-label{color:#64748b!important}
.monthly-page .summary-value{color:#26344a!important}
@media(max-width:768px){.monthly-page .monthly-actions{align-items:stretch!important;flex-direction:column!important}.monthly-page .monthly-actions form{width:100%;flex-direction:column!important;align-items:stretch!important}.monthly-page .monthly-actions input[type="file"]{width:100%!important}.monthly-page .monthly-actions .back-btn{justify-content:center;width:100%}}
.habit-name{font-weight:700;color:#14213a}.habit-progress{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}.streak-badge{padding:4px 8px;border-radius:999px;color:#17345b;background:#e6eef8;font-size:12px;font-weight:700}.week-progress{display:flex;gap:5px}.week-day{display:flex;flex-direction:column;align-items:center;gap:2px;color:#94a3b8;font-size:9px}.week-dot{width:8px;height:8px;border-radius:50%;background:#d8dee8}.week-day.done{color:#2563eb}.week-day.done .week-dot{background:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.autosave-status{position:fixed;right:24px;bottom:24px;z-index:1000;padding:11px 16px;border-radius:10px;color:#fff;background:#17345b;box-shadow:0 12px 28px rgba(15,23,42,.22);opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s ease}.autosave-status.visible{opacity:1;transform:translateY(0)}.autosave-status.error{background:#be123c}
.register-container{max-width:520px!important}.template-picker{margin:8px 0 22px;padding:16px;border:1px solid #dce2ea;border-radius:14px;background:#f8fafc}.template-picker legend{padding:0 7px;color:#14213a!important;font-weight:700}.template-picker p{margin:0 0 12px;font-size:13px}.template-option{display:flex;align-items:center;gap:12px;margin-top:8px;padding:10px 12px;color:#26344a!important;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer}.template-option:hover{border-color:#93c5fd;background:#f8fbff}.template-option input{width:18px;height:18px;accent-color:#17345b}.template-option span{display:flex;flex-direction:column}.template-option strong{color:#14213a}.template-option small{margin-top:2px;color:#64748b}
.check-cell,.check-wrapper,.mobile-check-wrapper,.mobile-check-text,.habit-table .btn.secondary{white-space:nowrap!important;word-break:keep-all!important}.habit-table td:nth-child(3),.habit-table td:nth-child(6){min-width:92px}.habit-table .btn.secondary{display:inline-flex!important;align-items:center!important;justify-content:center!important}
.habit-table th:nth-child(3),.habit-table th:nth-child(6){white-space:nowrap!important;word-break:keep-all!important}.habit-table th:nth-child(3),.habit-table td:nth-child(3){width:10%!important}.habit-table th:nth-child(4),.habit-table td:nth-child(4){width:28%!important}
