@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700&display=swap');
:root{font-family:'Zen Maru Gothic','Hiragino Kaku Gothic ProN','Noto Sans JP',sans-serif;font-size:16px;--bg:#f8f2f5;--bg-2:#f3f5f0;--surface:#fffafb;--surface-2:#fffdfd;--ink:#655a63;--muted:#968893;--accent:#b98fa4;--accent-deep:#9d7188;--accent-soft:#f7e9f0;--mint:#cfded4;--mint-deep:#7d9487;--mint-soft:#edf4ef;--peach:#f5e1d3;--peach-deep:#b7866b;--lav:#e8e4f3;--lav-deep:#8f84ab;--line:#eadfe5;--line-strong:#dcc9d3;--shadow:0 16px 38px rgba(138,107,127,.10);--shadow-soft:0 10px 24px rgba(138,107,127,.07);color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}
*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{padding:0;margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(239,214,226,.62) 0%,transparent 28%),radial-gradient(circle at top right,rgba(226,236,229,.7) 0%,transparent 30%),linear-gradient(180deg,#fcf8fa 0%,#f8f2f5 58%,#f5f4ef 100%);overscroll-behavior-y:contain;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font-family:inherit;font-size:16px;max-width:100%}button,a,summary,[role=button]{touch-action:manipulation}button{cursor:pointer;color:inherit;-webkit-appearance:none;appearance:none}a{color:var(--accent-deep);text-decoration-thickness:1.5px;text-underline-offset:2px}input,textarea,select{display:block;border:1px solid var(--line);border-radius:17px;background:#fffdfd;padding:12px 14px;width:100%;min-height:48px;outline:none;color:var(--ink);transition:border .15s,box-shadow .15s,background .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(185,143,164,.18);background:#fff}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:18px;accent-color:var(--accent-deep);display:inline-block}textarea{resize:vertical;min-height:110px;white-space:pre-wrap}label{font-size:14px;font-weight:700;display:grid;gap:8px}.muted,.secondary{color:var(--muted)}.small{font-size:13px}.tiny{font-size:11px}.hide{display:none!important}.ico{display:inline-block;width:20px;height:20px;flex-shrink:0;vertical-align:middle;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.85;fill:none}.ico.lg{width:26px;height:26px}.ico.xl{width:32px;height:32px}.logo-icon{width:54px;height:54px}.brand{display:flex;gap:12px;align-items:center;font-weight:700;font-size:28px;letter-spacing:-.03em;color:var(--accent-deep)}.brand-mark{display:flex;width:47px;height:47px}.brand-mark svg{width:100%;height:100%}.app-container{max-width:1160px;margin:0 auto;min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr);gap:30px;padding:24px 26px}.sidebar{position:sticky;top:24px;height:calc(100dvh - 48px);display:flex;flex-direction:column;gap:22px;padding:16px;border:1px solid rgba(234,223,229,.8);border-radius:32px;background:rgba(255,250,251,.8);box-shadow:var(--shadow-soft);backdrop-filter:blur(12px)}.sidebar .brand{padding:6px 8px 10px}.nav{display:grid;gap:8px}.nav-btn{display:flex;gap:12px;align-items:center;padding:13px 15px;min-height:50px;border:none;border-radius:17px;background:transparent;color:#907f8b;font-size:15px;font-weight:700;text-align:left;width:100%;transition:background .2s,color .2s,transform .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}.nav-btn.active{background:linear-gradient(135deg,#f8e9f0,#eff4ef);color:var(--accent-deep);box-shadow:0 10px 20px rgba(157,113,136,.12)}.nav-btn:hover{background:#f9eff4;transform:translateY(-1px)}.sidebar-footer{margin-top:auto;padding:18px;background:linear-gradient(135deg,#fff7fa,#f5f8f4);border:1px solid var(--line);border-radius:24px;font-size:13px;color:var(--muted)}.sidebar-footer p{margin:.6em 0 0}.main{min-width:0;padding-bottom:40px}.page-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:9px 0 18px}.page-top h1{margin:0;font-size:30px;line-height:1.25;letter-spacing:-.035em;color:var(--accent-deep)}.page-top p{margin:6px 0 0;color:var(--muted);font-size:13px}.page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.panel{position:relative;background:linear-gradient(180deg,rgba(255,252,253,.98) 0%,rgba(255,249,251,.98) 100%);border:1px solid rgba(234,223,229,.9);box-shadow:var(--shadow);border-radius:28px;padding:21px;margin:0 0 16px;min-width:0;overflow:hidden}.panel:before{content:"";position:absolute;top:-42px;right:-36px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(240,220,229,.72) 0%,rgba(240,220,229,0) 68%);pointer-events:none}.panel h2{font-size:18px;letter-spacing:-.02em;margin:0 0 12px}.panel h3{font-size:16px;margin:0 0 8px}.panel p{margin:.45em 0}.panel-header{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:15px}.panel-header h2{margin:0}.panel-header .h-icon{display:flex;align-items:center;justify-content:center;color:var(--accent-deep);background:linear-gradient(135deg,#f9ebf1,#eff5f0);border-radius:15px;width:40px;height:40px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.panel-header .title-wrap{display:flex;gap:10px;align-items:center}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tile{background:#fffdfd;border:1px solid var(--line);border-radius:22px;padding:18px;text-align:left;min-width:0;box-shadow:0 6px 18px rgba(161,134,149,.06);transition:transform .2s,border-color .2s,box-shadow .2s;color:var(--ink);-webkit-appearance:none;appearance:none}.tile:hover{border-color:#d9c1ce;box-shadow:0 14px 28px rgba(157,113,136,.10);transform:translateY(-2px)}.tile .tile-icon{color:var(--accent-deep);margin-bottom:9px}.tile h3{font-size:15px;margin:0 0 5px;color:var(--accent-deep)}.tile p{font-size:12px;color:var(--muted);margin:0}.btn,.primary-btn,.soft-btn,.danger-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:15px;padding:11px 16px;font-weight:700;font-size:14px;min-height:44px;text-decoration:none;border:1px solid transparent;line-height:1.3;transition:transform .18s,box-shadow .18s,background .18s}.primary-btn{background:linear-gradient(135deg,#b98fa4,#c7a6b7);color:#fff;border-color:#b98fa4;box-shadow:0 10px 20px rgba(157,113,136,.18)}.primary-btn:hover{background:linear-gradient(135deg,#ab7d94,#c09bb0);transform:translateY(-1px)}.soft-btn{background:linear-gradient(135deg,#fbf0f4,#eef5ef);color:var(--accent-deep);border-color:var(--line)}.soft-btn:hover{background:linear-gradient(135deg,#f7e8ef,#e7f0ea);transform:translateY(-1px)}.danger-btn{background:#fbecf0;color:#ab5e7a;border-color:#f0d2df}.btn{background:#fffdfd;border-color:var(--line);color:var(--ink)}.btn:hover,.danger-btn:hover{transform:translateY(-1px)}.btn:disabled,.primary-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.tiny-btn{font-size:12px;min-height:34px;padding:6px 10px;border-radius:12px}.btn-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.full{width:100%}.center{text-align:center}.form-stack{display:grid;gap:14px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tabs{display:flex;gap:6px;background:#f7eef2;padding:5px;border-radius:17px;margin-bottom:15px;overflow-x:auto;border:1px solid #efdee6}.tab{border:0;flex:1;min-width:max-content;background:transparent;border-radius:13px;padding:10px 14px;font-size:13px;font-weight:700;color:var(--muted);-webkit-appearance:none;appearance:none}.tab.active{background:#fff;color:var(--accent-deep);box-shadow:0 4px 12px rgba(157,113,136,.10)}.list-stack{display:grid;gap:10px}.list-row{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:18px;background:#fffdfd;padding:13px 14px;box-shadow:0 4px 12px rgba(161,134,149,.04)}.list-row .grow{flex:1;min-width:0}.list-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.list-row p{font-size:12px;margin:4px 0 0;color:var(--muted)}.list-row .actions{display:flex;align-items:center;gap:5px}.pill{display:inline-flex;font-weight:700;border-radius:999px;padding:4px 10px;font-size:11px;color:#8e6b82;background:#f6e8ef}.pill.pink{background:#f6e6ee;color:#a06b84}.pill.green{background:#edf4ef;color:#6c8975}.pill.yellow{background:#faeddc;color:#aa8260}.pill.gray{background:#f3edf1;color:#8b7d88}.empty{padding:32px 14px;text-align:center;border:1px dashed #e7d9e2;border-radius:20px;background:#fffafc;color:var(--muted);font-size:14px}.empty .ico{color:#c59ab2;margin-bottom:8px;width:30px;height:30px}.section-intro{color:var(--muted);font-size:13px;margin:-4px 0 14px}.big-number{font-size:54px;line-height:1.1;font-weight:700;color:var(--accent-deep);letter-spacing:-.06em}.gradient-card{border:none;background:linear-gradient(135deg,#f8eaf1,#eff4ef)}.gradient-card .small{color:#907f8c}.callout{border-radius:16px;padding:12px 14px;background:#f7edf2;color:#8d6d81;font-size:13px;border:1px solid #efdee6}.callout.warn{background:#fbefe2;color:#9c7a5c}.callout.danger{background:#faecf0;color:#a0647b}.day-cards{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.day-header{text-align:center;font-size:11px;color:var(--muted);font-weight:700;padding:6px 0}.day{min-height:74px;border:1px solid #eee3e8;border-radius:16px;padding:6px 4px;background:#fffdfd;overflow:hidden;box-shadow:0 4px 10px rgba(161,134,149,.04);color:#9d7188;-webkit-appearance:none;appearance:none}.day.out{background:#fbf7f9;color:#c1b5bd}.day.today{border:2px solid var(--accent);box-shadow:0 8px 18px rgba(185,143,164,.16)}.day .num{display:block;font-size:12px;font-weight:700;color:#9d7188}.day .event-dot{display:block;margin-top:3px;border-radius:8px;background:#f4e8ee;color:#8d6a80;padding:2px 4px;font-size:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.day .event-dot.shift-regular{background:#f5e2ea;color:#a06883}.day .event-dot.shift-event{background:#faecd8;color:#aa8060}.day .event-dot.shift-other{background:#eaf4ed;color:#698a74}.day .event-dot.shift-off{background:#eceaf5;color:#837aa3}.day.clickable{cursor:pointer}.month-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.month-head strong{font-size:16px;color:var(--accent-deep)}.year-group{margin-bottom:16px}.year-title{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;font-size:20px;font-weight:700;color:var(--accent-deep);padding:12px 0}.year-title .ico{transition:transform .18s}.year-title.collapsed .ico{transform:rotate(-90deg)}.timeline-line{border-left:2px solid #ead6e1;margin-left:9px;padding-left:20px;display:grid;gap:10px}.timeline-item{position:relative;background:#fffdfd;border-radius:18px;border:1px solid #ede1e8;padding:13px 14px;cursor:pointer;box-shadow:0 4px 12px rgba(161,134,149,.04)}.timeline-item:before{content:"";position:absolute;left:-27px;top:22px;width:12px;height:12px;border-radius:50%;background:var(--accent);border:3px solid #fff;box-shadow:0 0 0 2px #ead6e1}.timeline-item .text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;color:var(--muted);font-size:13px;white-space:pre-wrap}.thumbnail{object-fit:cover;width:100%;aspect-ratio:1/1;border-radius:16px;background:#f1ecef;display:block}.album-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.album-card{border:1px solid #e9dde5;background:#fffdfd;border-radius:22px;overflow:hidden;text-align:left;cursor:pointer;box-shadow:0 6px 16px rgba(161,134,149,.05);color:var(--ink);-webkit-appearance:none;appearance:none}.album-art{height:134px;background:linear-gradient(140deg,#f5e8ef,#eff5f0);display:grid;place-items:center;color:#b194a6}.album-art img{width:100%;height:100%;object-fit:cover}.album-card .details{padding:12px 14px}.album-card h3{margin:0;font-size:14px;color:var(--accent-deep)}.album-card p{margin:4px 0 0;color:var(--muted);font-size:11px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.photo-cell{padding:0;border:2px solid transparent;border-radius:14px;background:transparent;position:relative}.photo-cell img{border-radius:11px}.photo-cell.selected{border-color:var(--accent-deep)}.photo-cell.selected:after{content:'✓';position:absolute;right:5px;top:5px;border-radius:20px;background:var(--accent-deep);color:#fff;padding:1px 6px;font-size:12px}.photo-detail img{width:100%;max-height:65vh;object-fit:contain;background:#f5f0f3;border-radius:16px}.badge{font-size:11px;background:#f3ebf0;color:#8b7c88;padding:4px 9px;border-radius:99px}.notice{padding:12px 14px;border-radius:15px;background:#f5eaef;color:#8e6d81;font-size:13px}.notice.error{background:#faecf0;color:#b0617b}.notice.success{background:#edf4ef;color:#678573}.notice.warn{background:#faefe2;color:#9b795d}.alert-stack{display:grid;gap:8px}.alert-line{display:flex;gap:10px;align-items:flex-start;background:#fff9fb;border:1px solid #efdee6;border-radius:15px;padding:11px 12px}.alert-line strong{display:block;font-size:13px}.alert-line time{font-size:11px;color:var(--muted)}.link-button{padding:0;border:none;background:none;color:var(--accent-deep);font-size:13px;font-weight:700}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(99,78,92,.28);display:grid;place-items:center;padding:16px;backdrop-filter:blur(4px)}.modal{background:#fffbfd;max-width:540px;width:100%;max-height:min(90dvh,850px);display:flex;flex-direction:column;border-radius:28px;overflow:hidden;box-shadow:0 24px 80px rgba(107,79,96,.22)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 19px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:19px;color:var(--accent-deep)}.modal-body{padding:18px;overflow-y:auto;overscroll-behavior:contain}.modal-foot{padding:13px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.icon-btn{background:transparent;border:0;width:40px;height:40px;border-radius:12px;color:#968691;display:grid;place-items:center;flex-shrink:0;-webkit-appearance:none;appearance:none}.icon-btn:hover{background:#f7eef3}.toast{position:fixed;z-index:110;left:50%;bottom:96px;transform:translateX(-50%);max-width:min(90vw,500px);padding:12px 20px;border-radius:16px;background:#8f6b81;color:#fff;box-shadow:0 14px 40px rgba(84,54,71,.22);font-size:14px}.toast.bad{background:#b16a83}.mobile-nav{display:none}.login-shell{max-width:460px;margin:min(10vh,120px) auto;padding:20px}.login-shell .brand{justify-content:center;margin-bottom:20px}.login-shell .panel{text-align:center;padding:32px}.login-shell h1{font-size:26px;margin:0 0 7px;color:var(--accent-deep)}.login-shell form{text-align:left;margin-top:24px}.install-shell{max-width:650px;padding:25px 16px;margin:24px auto 50px}.install-shell h1{font-size:27px;margin:22px 0 8px;color:var(--accent-deep)}.install-shell .panel{padding:24px}.checkrow{font-size:14px}.blank-state{padding:70px 20px;text-align:center}.blank-state .ico{color:var(--accent);width:46px;height:46px}.grid-form{display:grid;gap:13px}.text-preview{white-space:pre-wrap;overflow-wrap:anywhere}.tiny-photo{width:56px;height:56px;object-fit:cover;border-radius:10px}.photo-chips{display:flex;gap:8px;flex-wrap:wrap}.photo-chips img{width:70px;height:70px;object-fit:cover;border-radius:12px}.check-label{display:flex;align-items:center;gap:8px}.subhead{font-size:13px;color:var(--muted);margin:0 0 13px}.section-subtitle{font-size:14px;font-weight:700;margin:14px 0 8px;color:var(--accent-deep)}.more-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.meta-line{color:var(--muted);font-size:12px}.overflow-wrap{overflow-wrap:anywhere}.loading{padding:50px;text-align:center;color:var(--muted)}.tile,.album-card,.day,.nav-btn,.tab,.icon-btn,.list-row{font:inherit;text-decoration:none}.tile *, .album-card *, .day *{color:inherit}.tile .tile-icon,.nav-btn .ico,.page-top .ico,.panel-header .ico,.mobile-nav .nav-btn .ico{color:var(--accent-deep)}
@media(max-width:800px){.app-container{display:block;padding:12px 14px 92px}.sidebar{display:none}.main{padding:0}.page-top{margin:14px 3px 16px}.page-top h1{font-size:25px}.page-actions .btn,.page-actions .soft-btn,.page-actions .primary-btn{padding:10px 12px}.panel{padding:18px;margin-bottom:13px;border-radius:24px}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;padding:8px max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom));background:rgba(255,251,253,.97);border-top:1px solid #eadfe6;box-shadow:0 -3px 20px rgba(133,106,128,.08);z-index:80;backdrop-filter:blur(12px)}.mobile-nav .nav-btn{display:grid;justify-items:center;gap:2px;text-align:center;min-height:50px;padding:5px 2px;border-radius:14px;font-size:10px}.mobile-nav .nav-btn .ico{width:21px;height:21px}.mobile-nav .nav-btn.active{background:linear-gradient(180deg,#f7e9f0,#f3f7f1)}.form-row{grid-template-columns:1fr}.modal{max-height:93dvh}.modal-backdrop{padding:10px}.toast{bottom:86px}.day{min-height:66px;padding:4px 2px}.day .event-dot{font-size:9px}.brand{font-size:24px}.cards{grid-template-columns:1fr}}
@media(min-width:801px) and (max-width:1050px){.app-container{grid-template-columns:196px 1fr;gap:18px;padding:18px}.sidebar{top:18px}}
@media(max-width:390px){.cards{gap:9px}.tile{padding:13px}.day{min-height:59px}.list-row{padding:10px}.panel{padding:15px}.album-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}


/* WORK SHIFT: reference-inspired full-color calendar; does not affect shared CALENDAR */
.shift-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:9px 0 14px}
.shift-weekday{font-size:12px;line-height:1.5;font-weight:700;text-align:center;padding:4px 0 5px;color:#766b75}
.shift-weekday.shift-saturday{color:#6a879e}.shift-weekday.shift-sunday{color:#ad768b}
.shift-day,.shift-empty{width:100%;min-width:0;min-height:70px;border-radius:13px}
.shift-day{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:7px 2px;border:1px solid transparent;text-align:center;cursor:pointer;font-family:inherit;-webkit-appearance:none;appearance:none;touch-action:manipulation;transition:transform .15s ease,box-shadow .15s ease;color:#736773;background:#f7f3f5}
.shift-day .shift-number{display:block;line-height:1.05;font-size:18px;font-weight:700;color:inherit;font-variant-numeric:tabular-nums}
.shift-day .shift-kind{display:block;line-height:1.15;font-size:11px;font-weight:700;letter-spacing:-.045em;color:inherit;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:clip}
.shift-day .shift-kind-empty{min-height:12px}
.shift-day.shift-regular{background:#efd0de;color:#775064}
.shift-day.shift-event{background:#f7ddbd;color:#78572f}
.shift-day.shift-other{background:#d2e9db;color:#4a6d5b}
.shift-day.shift-off{background:#d7e6f2;color:#4d6c83}
.shift-day.shift-unset{background:#faf7f8;color:#b2a5ae;border-color:#eee5ea}
.shift-day.shift-today{outline:2px solid #a67892;outline-offset:1px;box-shadow:0 0 0 4px rgba(166,120,146,.10)}
.shift-day:focus-visible{outline:3px solid #8e607b;outline-offset:2px}
.shift-day:active{transform:scale(.96)}
.shift-empty{background:transparent}
.shift-legend{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin:15px 0 8px}
.shift-legend span{display:inline-flex;align-items:center;gap:5px;color:#857682;font-size:12px;font-weight:700}
.shift-dot{display:inline-block;flex-shrink:0;width:11px;height:11px;border-radius:4px;border:1px solid rgba(0,0,0,.04)}
.shift-dot.shift-regular{background:#efd0de}.shift-dot.shift-event{background:#f7ddbd}.shift-dot.shift-other{background:#d2e9db}.shift-dot.shift-off{background:#d7e6f2}
.shift-help{text-align:center;margin-top:12px!important}
@media(max-width:800px){
 .shift-calendar{gap:5px;margin:7px -1px 12px}
 .shift-day,.shift-empty{min-height:60px;border-radius:11px}
 .shift-day{padding:5px 1px;gap:3px}
 .shift-day .shift-number{font-size:16px}
 .shift-day .shift-kind{font-size:10px}
 .shift-weekday{font-size:11px}
 .shift-legend{gap:10px}
 .shift-legend span{font-size:11px}
}
@media(max-width:360px){
 .shift-calendar{gap:4px}
 .shift-day,.shift-empty{min-height:54px;border-radius:9px}
 .shift-day .shift-number{font-size:15px}
 .shift-day .shift-kind{font-size:9px;letter-spacing:-.08em}
}

/* PHOTO v1006: 写真表示と明示的な選択モード */
.photo-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.photo-mode-tip{display:flex;align-items:center;gap:7px;font-size:13px;line-height:1.5;color:var(--accent-deep);background:#f9eff4;border:1px solid #f0dfe7;border-radius:14px;padding:11px 12px;margin-bottom:12px}
.photo-mode-tip .ico{width:17px;height:17px}
.photo-selection-tools{display:grid;gap:11px;background:#fff8fa;border:1px solid var(--line);border-radius:16px;padding:13px;margin-bottom:12px}
.photo-selection-count{font-size:14px;font-weight:700;color:var(--accent-deep)}
.photo-cell{cursor:zoom-in;transition:transform .16s,border-color .16s}
.photo-cell:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.photo-cell.cover-choice{cursor:pointer}
.photo-cell.cover-choice:hover{border-color:var(--accent)}
.photo-cell.selected{cursor:pointer}
.photo-viewer{display:grid;gap:12px;min-width:0}
.photo-viewer-image{display:block;width:100%;height:auto;max-height:65dvh;object-fit:contain;background:#f8f3f6;border-radius:18px}
.photo-viewer .btn-row{justify-content:center}
.photo-view-modal{max-width:min(94vw,760px)}
.photo-view-modal .modal-body{padding:14px}
.photo-view-modal .grid-form{gap:12px}
@media(max-width:800px){.photo-view-modal{max-width:100%}.photo-view-modal .modal-body{padding:10px}.photo-viewer-image{max-height:67dvh}.photo-toolbar .btn,.photo-toolbar .soft-btn{min-height:42px}}

/* v1007: text color / heading weight / integrated calendar / polaroid albums */
:root{--ink:#68646b;--muted:#79757b;--line:#e6dfe3;--line-strong:#d7cbd2}
body,.panel p,.list-row strong,.list-row p,.alert-line strong,.alert-line time,label,input,textarea,select,button{color:var(--ink)}
a,a:visited,.link-button,.month-head strong,.page-top h1,.panel h2,.panel h3,.tile h3,.album-card h3,.modal-head h2,.brand,.login-shell h1,.install-shell h1,.year-title,.section-subtitle{color:var(--ink)}
.page-top h1,.panel h2,.panel h3,.tile h3,.album-card h3,.month-head strong,.modal-head h2,.year-title{font-weight:700}
.nav-btn,.tab,.list-row strong,.photo-selection-count,.btn,.primary-btn,.soft-btn,.danger-btn{font-weight:700}
.icon-btn{color:var(--ink)}
.link-button{font-weight:700;text-decoration:none}
.nav-btn{color:var(--ink)}
.nav-btn.active{color:var(--ink)}
.tile .tile-icon,.nav-btn .ico,.page-top .ico,.panel-header .ico,.mobile-nav .nav-btn .ico,.brand .logo-icon{color:var(--accent-deep)}

.album-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:22px;padding:6px 4px 10px}
.album-card.polaroid-card{--tilt:0deg;display:block;background:#fff;border:1px solid #e5dde2;border-radius:22px;padding:12px 12px 16px;overflow:visible;box-shadow:0 14px 28px rgba(113,94,105,.10);transform:rotate(var(--tilt));transform-origin:center 20%;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.album-card.polaroid-card:hover{transform:translateY(-3px) rotate(var(--tilt));box-shadow:0 18px 34px rgba(113,94,105,.14);border-color:#d9ccd4}
.album-card.polaroid-card.tilt-0{--tilt:-3deg}.album-card.polaroid-card.tilt-1{--tilt:2deg}.album-card.polaroid-card.tilt-2{--tilt:-1.5deg}.album-card.polaroid-card.tilt-3{--tilt:3deg}.album-card.polaroid-card.tilt-4{--tilt:-2deg}
.album-card.polaroid-card .album-photo-frame{background:#fff;border-radius:14px;padding:0}
.album-card.polaroid-card .album-art{height:auto;aspect-ratio:1/1;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,#f7ecf1,#eff4ef);display:grid;place-items:center;color:#a4909e}
.album-card.polaroid-card .album-art img{width:100%;height:100%;object-fit:cover}
.album-card.polaroid-card .album-art.album-art-plain{background:linear-gradient(145deg,#f6ecf0,#f3f0f2)}
.album-card.polaroid-card .details{padding:14px 6px 0;text-align:center}
.album-card.polaroid-card h3{font-size:15px;margin:0 0 5px}
.album-card.polaroid-card p{margin:0;font-size:12px;color:var(--muted)}

.mix-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.mix-weekday{font-size:11px;line-height:1.5;font-weight:700;text-align:center;padding:5px 0;color:var(--muted)}
.mix-weekday.sat{color:#6d8190}.mix-weekday.sun{color:#9f6f81}
.mix-day{width:100%;min-height:80px;border:1px solid #e8e0e4;border-radius:18px;background:#fffdfd;padding:7px 4px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;box-shadow:0 6px 14px rgba(113,94,105,.05);-webkit-appearance:none;appearance:none}
.mix-day.mix-day-out{min-height:80px;background:transparent;box-shadow:none;border:0}
.mix-day-number{font-size:15px;font-weight:700;line-height:1.1;color:var(--ink)}
.mix-day-bottom{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:4px;min-height:14px}
.mix-day-filler{display:block;width:8px;height:8px;opacity:0}
.mix-event-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink)}
.mix-event-count{font-size:10px;font-weight:700;line-height:1;color:var(--ink)}
.mix-shift-none{background:#fffdfd}
.mix-shift-regular{background:#efd4df}.mix-shift-event{background:#f7e2c5}.mix-shift-other{background:#dbeee3}.mix-shift-off{background:#dce8f2}
.mix-day.is-today{outline:2px solid #9f7a90;outline-offset:1px;box-shadow:0 0 0 4px rgba(159,122,144,.10)}
.mix-day.has-events .mix-day-number{font-weight:700}
.mix-calendar.compact .mix-day{min-height:68px;border-radius:16px;padding:6px 3px}
.mix-calendar.compact .mix-day-number{font-size:14px}
.mix-calendar.compact .mix-event-count{font-size:9px}
.shift-legend{margin-top:14px}
.shift-legend .mix-event-dot{margin-right:1px}

@media(max-width:800px){
  .album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .mix-calendar{gap:5px}
  .mix-day,.mix-day.mix-day-out{min-height:68px;border-radius:15px;padding:6px 2px}
  .mix-day-number{font-size:14px}
  .mix-event-count{font-size:9px}
  .mix-calendar.compact .mix-day{min-height:60px}
}
@media(max-width:390px){
  .album-grid{grid-template-columns:1fr}
  .mix-day,.mix-day.mix-day-out{min-height:60px}
}

/* v1008: softened charcoal text and album description in the page header */
body,button,a,a:visited{color:var(--ink)}
.panel p.muted,.panel .muted,.page-top p,.album-card p,.list-row p,.meta-line,.small.muted{color:var(--muted)}
.page-top .album-description{display:inline-block;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;font-size:14px;color:var(--ink)}
.primary-btn,.primary-btn:hover{color:#fff}
.link-button,.nav-btn.active,.tile h3,.album-card h3,.month-head strong,.section-subtitle{color:var(--ink)}
