@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&display=swap');
:root{--ink:#23343a;--teal:#195c63;--muted:#798287;--bg:#f6f5f1;--line:#e4e5e1}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a{touch-action:manipulation}button{border:1px solid var(--line);background:#fff;color:inherit;border-radius:10px;padding:10px 14px}button:hover{border-color:#9bb6b7}button:focus-visible,a:focus-visible{outline:3px solid #76afb9;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #d9deda;border-radius:9px;background:#fff;padding:11px;color:var(--ink)}textarea{min-height:110px;resize:vertical}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:.02em;margin-bottom:6px}h2{font-size:19px}h3{font-size:15px}small,.muted{color:var(--muted)}a{color:var(--teal)}header{max-width:1060px;margin:auto;padding:32px 28px 20px;display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:.22em;color:var(--teal);margin-bottom:9px}main{max-width:1060px;margin:auto;padding:0 28px 120px}.subhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0}.row{display:flex;align-items:center;gap:10px}.row>*{min-width:0}.between{justify-content:space-between}.primary{background:var(--teal);color:#fff;border-color:var(--teal)}.add{font-size:26px;width:48px;height:48px;border-radius:50%;padding:0}.seg{display:flex;padding:4px;background:#eaece8;border-radius:12px;gap:4px}.seg button{flex:1;border:0;background:transparent;white-space:nowrap;padding:9px 12px}.seg button.active{background:#fff;color:var(--teal);box-shadow:0 2px 5px #22333310}.filters{display:grid;grid-template-columns:150px 170px 150px 1fr;gap:10px;margin:18px 0}.tickets{display:grid;grid-template-columns:1fr 1fr;gap:17px}.ticket{position:relative;display:flex;min-height:141px;border:1px solid #dfe1dc;background:#fff;border-radius:12px;box-shadow:0 4px 10px #26393406;overflow:hidden;text-align:left;padding:0;width:100%;color:var(--ink)}.stripe{width:9px;flex:none;display:flex;flex-direction:column}.stripe i{flex:1}.ticket:before,.ticket:after{content:'';position:absolute;width:17px;height:17px;background:var(--bg);border-radius:50%;top:calc(50% - 8px)}.ticket:before{left:-9px}.ticket:after{right:-9px}.date{width:90px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px dashed #c6ceca;margin:15px 0}.date strong{font-size:26px;letter-spacing:-1px}.date small{font-size:10px}.ticket-text{flex:1;padding:20px 20px 17px;min-width:0}.ticket-text h3{font-size:17px;margin-bottom:5px}.ticket-text p{font-size:13px;margin:0 0 8px;overflow-wrap:anywhere}.ticket-text small{font-size:11px}.badge{display:inline-block;padding:3px 7px;background:#eef2f0;border-radius:5px;font-size:10px;margin-right:4px}.ticket .arrow{align-self:center;padding-right:17px;color:#8a9797}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:15px}.card h3{margin-bottom:14px}.card p{line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:0}.detail-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}.detail-grid .ticket{margin-bottom:20px;min-height:180px}.detail-grid .ticket h3{font-size:24px}.detail-grid .date{width:110px}.label{font-size:11px;color:var(--muted);margin-bottom:6px}.meta{display:grid;grid-template-columns:1fr 1fr;gap:18px}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.photo-grid button{padding:0;overflow:hidden;aspect-ratio:1;border:0;background:#e7ece9}.photo-grid img{width:100%;height:100%;object-fit:cover;display:block}.empty{text-align:center;padding:64px 20px;color:var(--muted)}.empty h2{color:var(--ink);font-size:20px}.empty .symbol{font-size:38px;margin-bottom:18px}.empty p{line-height:1.9}.nav{position:fixed;bottom:0;left:0;right:0;background:#fffffff2;border-top:1px solid var(--line);backdrop-filter:blur(15px);z-index:500;padding:9px max(15px,calc((100% - 560px)/2)) calc(9px + env(safe-area-inset-bottom));display:flex;justify-content:space-around}.nav button{border:0;background:none;padding:4px 20px;color:#8b9393;font-size:10px}.nav button span{display:block;font-size:21px;line-height:1.5}.nav button.active{color:var(--teal);font-weight:700}.notice{font-size:11px;border:1px solid #dce5dd;background:#edf2eb;padding:9px 13px;border-radius:8px;margin-bottom:18px;line-height:1.7}.calendar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:24px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekday{text-align:center;color:var(--muted);font-size:11px;padding:12px 0}.day{border:0;border-radius:9px;min-height:66px;padding:9px 3px;display:flex;align-items:center;flex-direction:column;gap:7px;background:transparent}.day.selected{background:var(--teal);color:white}.day.today:not(.selected){box-shadow:inset 0 0 0 1px #85acad}.dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.dot{width:6px;height:6px;border-radius:50%}.day small{font-size:8px;color:inherit}.stats{display:flex;gap:12px;margin:18px 0}.stat{flex:1;padding:17px 10px;background:#fff;border:1px solid var(--line);border-radius:10px;text-align:center}.stat strong{font-size:25px;margin-right:5px}.stat small{font-size:11px}.foot-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}.map{height:440px;border-radius:12px;border:1px solid var(--line);z-index:1}.listrow{display:flex;width:100%;align-items:center;text-align:left;gap:14px;padding:17px;margin-bottom:10px;background:#fff}.listrow .count{margin-left:auto;white-space:nowrap;font-size:18px}.listrow.selected{border-color:var(--teal)}.listrow .icon{font-size:24px;color:var(--teal)}.barrow{display:flex;align-items:center;gap:10px;margin:13px 0;font-size:12px}.bar{height:9px;flex:1;border-radius:5px;background:#f0f1f0;overflow:hidden}.bar i{display:block;height:100%;border-radius:5px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:11px;padding:5px 9px;background:#eff1ef;border-radius:5px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}dialog{border:1px solid var(--line);border-radius:16px;max-width:620px;width:calc(100% - 28px);max-height:90dvh;padding:0;color:var(--ink);box-shadow:0 20px 80px #14242630}dialog::backdrop{background:#1c2c3066;backdrop-filter:blur(3px)}.modalhead{padding:20px 24px;position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;z-index:3}.modalhead h2{margin:0}form{padding:22px 24px}.field{display:block;margin-bottom:17px}.field>span{font-size:12px;font-weight:600;display:block;margin-bottom:7px}.checks{display:flex;gap:13px;flex-wrap:wrap}.checks label{display:flex;align-items:center;gap:6px}.checks input{width:auto;accent-color:var(--teal)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.danger{color:#ad4f52}.error{color:#ad4f52;font-size:12px;white-space:pre-wrap}.back{border:0;background:none;padding-left:0}.help{font-size:11px;line-height:1.8;color:var(--muted)}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:#233d3f;color:white;padding:12px 20px;border-radius:10px;z-index:2000;display:none;max-width:90%;white-space:pre-wrap}#viewer{background:#172429;color:#fff;max-width:1000px}#viewer img{display:block;max-width:100%;max-height:75vh;margin:auto}#viewer .modalhead{background:#172429}#viewer button{background:transparent;color:#fff}#viewer .viewer-actions{padding:10px 20px;display:flex;justify-content:space-between}.mini{font-size:11px}.full{width:100%}progress{width:100%}.photo-info{padding:10px;text-align:center;font-size:12px}@media(max-width:700px){header{padding:25px 20px 17px}h1{font-size:25px}main{padding:0 18px 110px}.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.tickets,.detail-grid,.foot-layout,.settings-grid{grid-template-columns:1fr}.ticket{min-height:130px}.date{width:80px}.ticket-text{padding:17px 15px}.ticket-text h3{font-size:16px}.detail-grid{gap:0}.photo-grid{grid-template-columns:repeat(3,1fr)}.calendar{padding:12px}.day{min-height:58px}.seg button{padding:9px;font-size:12px}.subhead{margin:16px 0}.map{height:370px}.card{padding:18px}.stats{gap:7px}.stat strong{font-size:22px}.stat small{display:block}.formgrid{grid-template-columns:1fr}.nav button{padding:4px 16px}.eyebrow{font-size:9px}.detail-grid .ticket{min-height:160px}}@media(prefers-reduced-motion:no-preference){button{transition:border-color .15s,background .15s}}

/* Keep controls and content within their grid and flex tracks on desktop. */
.subhead{flex-wrap:wrap}.subhead>.seg{max-width:100%}.seg{min-width:0;flex-shrink:0}.filters{grid-template-columns:minmax(100px,150px) minmax(0,210px) minmax(100px,150px) minmax(0,1fr)}.filters>*{min-width:0}.tickets,.detail-grid,.foot-layout,.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid>*{min-width:0}.backup-card{grid-column:1/-1}.sort-select{width:auto;max-width:180px}.ticket-text h3,.ticket-text small,.listrow{overflow-wrap:anywhere}
@media(max-width:700px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.tickets,.detail-grid,.foot-layout,.settings-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:380px){.subhead>.seg{width:100%}.seg button{min-width:0;flex:1;padding:9px 6px}}

.foot-filters{display:flex;flex-wrap:wrap;gap:10px;flex:0 1 340px;min-width:0}.foot-filters select{flex:1 1 140px;min-width:140px;width:auto}.sort-toggle{min-width:115px;text-align:center}.venue-prefecture{white-space:nowrap}.date-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;min-height:44px}.date-picker{margin-top:10px;padding:12px;background:#f8faf8;border:1px solid var(--line);border-radius:12px}.date-picker-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.date-picker-head>button{padding:8px 10px}.date-picker-month{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0}.date-picker-month input{width:78px;padding:7px 4px;text-align:center}.date-picker-month select{width:68px;padding:7px 3px}.date-picker .cal-grid{gap:2px}.date-picker .day{min-height:38px;padding:7px 0;justify-content:center}.date-picker .weekday{padding:10px 0}.sunday{color:#b5666c}.saturday{color:#4c86a6}.day.selected{color:white}.date-picker-footer{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.date-picker-footer button{font-size:11px;padding:7px}.date-field:has(.date-picker:not([hidden])){grid-column:1/-1}.date-picker[hidden]{display:none}
@media(max-width:700px){.foot-filters{flex-basis:100%}.foot-filters select{flex:1 1 140px}.date-picker .day{min-height:44px}}

.ui-icon{display:inline-block;vertical-align:middle;flex:none}.page-subtitle{font-size:14px;color:var(--muted);margin:8px 0 0;font-weight:500}button .ui-icon{vertical-align:middle}.nav button>span{display:flex;justify-content:center;align-items:center;margin-bottom:4px;min-height:30px}.ticket .arrow{display:flex;align-items:center}.symbol .ui-icon{color:var(--teal)}.sort-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px}header h1{letter-spacing:.06em;font-size:27px}@media(max-width:700px){header h1{font-size:24px}.page-subtitle{font-size:12px}}

header .add{display:inline-flex;align-items:center;justify-content:center;flex:0 0 48px;line-height:1;padding:0}header .add .ui-icon{display:block;margin:0}.card-heading{gap:12px;margin-bottom:16px;flex-wrap:wrap}.card-heading h3{margin:0}.card-heading button{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:none}.color-control{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.color-control input[type=color]{display:block;width:80px;height:48px;min-height:48px;padding:5px;flex:none;background:#fff;cursor:pointer}.color-control input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-control input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}.color-control input[type=color]::-moz-color-swatch{border:0;border-radius:5px}.color-swatch{display:block;width:30px;height:30px;border-radius:50%;border:1px solid #23343a20;flex:none}.color-control output{font-size:13px;font-variant-numeric:tabular-nums}

/* Use the calendar label as the shared segment width. */
.seg:has([data-view]),.seg:has([data-foot]){display:grid;grid-auto-flow:column;grid-auto-columns:108px;flex:none;width:max-content;max-width:100%}.seg:has([data-view]) button,.seg:has([data-foot]) button{width:108px;padding:9px 8px}.sort-toggle{position:relative;min-width:115px;padding-right:28px;padding-left:28px}.sort-label{display:block;text-align:center}.sort-toggle>.ui-icon{position:absolute;right:10px}.date-picker{position:relative;padding:16px;background:#fff;border-radius:16px;box-shadow:0 4px 18px #23343a0c}.date-month-label{border:0;font-weight:600;background:transparent}.date-picker .day{min-height:46px;border-radius:10px}.date-month-popup{position:absolute;top:62px;left:50%;transform:translateX(-50%);width:min(320px,calc(100% - 20px));padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 28px #0002;z-index:4}.date-month-popup[hidden]{display:none}.date-year-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.date-year-row label{display:flex;align-items:center;gap:4px}.date-year-row input{width:80px;text-align:center;padding:7px}.date-month-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.date-month-grid button{padding:10px 4px}.date-month-grid button.active{background:var(--teal);color:white}@media(max-width:380px){.seg:has([data-view]),.seg:has([data-foot]){grid-auto-columns:96px;width:max-content}.seg:has([data-view]) button,.seg:has([data-foot]) button{width:96px}}

.lightbox-swipe-stage {
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.lightbox-swipe-track {
    position: relative;
    width: 100%;
}

.lightbox-swipe-current,
.lightbox-swipe-neighbor {
    display: flex;
    align-items: center;
    justify-content: center;
}

.lightbox-swipe-neighbor {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.lightbox-swipe-neighbor.previous { left: -100%; }
.lightbox-swipe-neighbor.next { left: 100%; }

.lightbox-swipe-neighbor img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 4px;
}

.lightbox-swipe-stage.is-zoomed { overflow: visible; }
.lightbox-swipe-stage.is-zoomed .lightbox-swipe-neighbor { visibility: hidden; }


header h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;letter-spacing:.065em;font-size:34px;line-height:1.12}.sort-toggle{position:static;display:inline-flex;gap:7px;padding:10px 14px;justify-content:center}.sort-toggle>.ui-icon{position:static}.select-control{position:relative;min-width:0;width:100%;border:1px solid #d9deda;border-radius:9px;background:#fff;min-height:44px}.select-control>select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:1;padding:0}.select-display{display:flex;justify-content:center;align-items:center;gap:7px;padding:11px 10px;min-width:0;pointer-events:none}.select-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-control:focus-within{outline:3px solid #76afb9;outline-offset:2px}.foot-filters>.select-control{flex:1 1 140px;width:auto}.record-filter-panel{margin:10px 0;border:1px solid var(--line);border-radius:10px;background:#fff}.record-filter-panel>summary{cursor:pointer;padding:10px 13px;font-size:12px;color:var(--teal)}.record-filter-panel .filters{margin:0;padding:0 12px 12px}.record-switches{gap:8px;margin:14px 0 10px}.record-switches .seg{flex:1;display:flex;width:auto;max-width:none}.record-switches .seg button{width:auto;min-width:0;flex:1;padding:8px 7px;font-size:12px}.seg:has([data-foot]){display:grid;grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-columns:auto;width:min(100%,480px)}.seg:has([data-foot]) button{width:auto;min-width:0;font-size:12px;padding:9px 5px}.album-event-title{display:flex;position:relative;flex-direction:column;gap:5px;width:100%;border:0;border-left:3px solid var(--teal);border-radius:0;background:none;text-align:left;margin:14px 0 18px;padding:0 24px 0 12px}.album-event-title>.ui-icon{position:absolute;right:0;top:50%;transform:translateY(-50%)}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.photo-grid button{border-radius:12px}.photo-grid button:hover{box-shadow:0 6px 18px #0002}.detail-grid .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#viewer{width:calc(100% - 20px);max-width:1180px}#viewer .lightbox-swipe-stage{touch-action:pan-y pinch-zoom}#viewer img{object-fit:contain}#viewer .lightbox-swipe-neighbor img{height:100%;width:100%}
@media(min-width:1200px){.album-event .photo-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(min-width:768px) and (max-width:1023px){.album-event .photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:767px){header{padding-top:20px;padding-bottom:14px}header h1{font-size:28px}.notice{font-size:10px;padding:7px 10px;margin-bottom:12px;line-height:1.5}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.photo-grid button{border-radius:9px}.record-switches{flex-wrap:nowrap}.record-switches .seg button{font-size:11px;padding:8px 4px}.record-filter-panel>summary{padding:9px 12px}.subhead:has(.sort-toggle){margin:10px 0}.record-filter-panel .filters{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-filters{flex-basis:auto;width:100%}.seg:has([data-foot]){width:100%}}

.back{border:1px solid var(--line);background:#fff;padding:10px 14px;display:inline-flex;align-items:center;gap:6px}body.viewer-open{overflow:hidden}#viewer{position:fixed;inset:0;margin:auto;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:0;overflow:hidden;background:#10191d;color:#fff}#viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}#viewer .modalhead{position:static;padding:12px 18px;gap:12px;min-height:60px;background:#10191d;border-color:#ffffff20}#viewer .modalhead>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#viewer .modalhead button{flex:none;width:40px;height:40px;padding:8px;border-radius:50%;display:flex;align-items:center;justify-content:center}#viewer .lightbox-swipe-stage{height:100%;min-height:0;touch-action:none}#viewer .lightbox-swipe-track{height:100%;min-height:0}#viewer .lightbox-swipe-current{height:100%;min-height:0;overflow:hidden}#viewer .lightbox-swipe-current img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;transform-origin:center;user-select:none}#viewer .lightbox-swipe-neighbor img{height:100%;width:100%;max-height:100%;object-fit:contain}#viewer .viewer-actions{padding:8px 18px;gap:8px;align-items:center;flex-wrap:wrap}#viewer .viewer-actions:last-child{border-top:1px solid #ffffff20;padding-bottom:calc(10px + env(safe-area-inset-bottom))}#viewer button{border-color:#ffffff40;padding:8px 12px;font-size:12px}#viewer button:disabled{opacity:.3}#viewer .viewer-actions .row{gap:6px}@media(max-width:500px){#viewer .viewer-actions{padding-left:10px;padding-right:10px}#viewer button{font-size:11px;padding:8px}#viewer .viewer-actions:last-child{display:grid;grid-template-columns:1fr auto auto}}

#duplicate,#edit{min-width:72px;width:72px;flex:none;text-align:center}.settings-status{justify-content:flex-end;margin-top:8px;margin-bottom:12px}.venue-popup-label{font:inherit;color:var(--ink);padding:2px 0;background:none;border:0;white-space:nowrap}.venue-marker-selected{filter:drop-shadow(0 0 4px #195c63) saturate(1.3)}

#close-editor{border-radius:50%;width:40px;height:40px;min-width:40px;padding:8px;display:inline-flex;align-items:center;justify-content:center;flex:none}#close-editor .ui-icon{display:block}.leaflet-container a.leaflet-popup-close-button{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;top:5px;right:5px}.record-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.album-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.album-meta .gallery-article-date{margin-bottom:0}@media(max-width:767px){.record-filter-panel .record-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}

.badge.cancelled{background:#f6e8e8;color:#985559}.attendance-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-switch button{font-size:12px;padding:9px 5px;min-width:0}@media(max-width:380px){.attendance-switch button{font-size:11px}}

.date-month-popup{border-radius:18px;padding:18px;box-shadow:0 12px 28px #0000001f;top:58px}.date-month-popup:before{content:'';position:absolute;top:-8px;left:calc(50% - 8px);width:14px;height:14px;transform:rotate(45deg);background:#fff;border-top:1px solid var(--line);border-left:1px solid var(--line)}.date-year-row{position:relative;margin-bottom:18px}.date-year-row>strong{font-size:17px}.date-year-row>button{border:0;background:none;width:38px;height:38px;padding:8px}.date-month-grid{gap:8px}.date-month-grid button{border:1px solid transparent;background:transparent;border-radius:10px;font-size:14px;padding:12px 4px}.date-month-grid button.active{background:#f6f7f6;color:var(--teal);border-color:#7eafb5;font-weight:600}.foot-scope .seg{width:100%;display:flex}.foot-scope button{flex:1;min-width:0;white-space:normal}.foot-summary{display:grid;grid-template-columns:135px 1fr;align-items:center;gap:18px}.count-ring{width:135px;height:135px;border-radius:50%;background:conic-gradient(var(--teal) var(--portion),#cc9292 0);padding:12px}.count-ring>div{border-radius:50%;background:#fff;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.count-ring strong{font-size:34px;line-height:1.2}.count-ring small{font-size:10px}.count-breakdown{display:flex;flex-direction:column;gap:10px;font-size:12px}.count-breakdown b{font-size:20px;margin:0 4px}.count-breakdown>small{font-size:10px}.legend{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.legend.attended{background:var(--teal)}.legend.cancelled{background:#cc9292}.rankings{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px}.rankings summary{cursor:pointer;font-size:12px}.rank-row{display:grid;grid-template-columns:20px 1fr auto;gap:6px 10px;margin-top:14px;align-items:center}.rank-index{color:var(--muted);font-size:12px}.rank-name{font-size:12px}.rank-row strong{font-size:19px}.rank-row strong small{font-size:10px;margin-left:3px}.rank-track{grid-column:2/-1;background:#eef1ee;height:6px;border-radius:6px;overflow:hidden}.rank-track i{display:block;height:100%;border-radius:6px}@media(max-width:380px){.foot-summary{grid-template-columns:110px 1fr;gap:12px}.count-ring{width:110px;height:110px;padding:10px}.count-breakdown{font-size:10px}.count-breakdown b{font-size:18px}}

.round-add{width:44px;height:44px;min-width:44px;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex:none}.round-add .ui-icon{display:block}.card-heading .round-add{padding:0}#edit{display:inline-flex;align-items:center;justify-content:center}#empty-add{margin:0 auto}

.filter-field{display:flex;flex-direction:column;gap:6px;min-width:0;text-align:left}.filter-field>span{font-size:11px;font-weight:600;color:var(--muted);padding-left:2px}.foot-filters>.filter-field{flex:1 1 140px;width:auto}.filter-field>input{min-width:0}

.photo-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}.photo-actions button{width:100%;min-width:0;text-align:center}

/* 日付欄に左右の余白を確保する。 */
.ticket .date{width:112px;padding-inline:10px}
.ticket .date strong{white-space:nowrap}
.detail-grid .ticket .date{width:120px}
@media(max-width:700px){.ticket .date,.detail-grid .ticket .date{width:104px}}

/* ヘッダー右上と固定追加ボタン */
header{position:relative;gap:16px}header>div{min-width:0}header h1{padding-right:44px}
header .logout{position:absolute;right:28px;top:30px;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:1px solid #195c6344;border-radius:50%;background:#195c630a;color:var(--teal);text-decoration:none}
header .logout svg{width:20px;height:20px}
.floating-add{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:calc(88px + env(safe-area-inset-bottom));width:56px;height:56px;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 18px #195c6338;z-index:600}
main{padding-bottom:160px}
.month-filter{position:relative}.month-filter>span{display:block;font-size:11px;font-weight:600;margin-bottom:0}
.month-filter details>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:11px 10px;border:1px solid #d9deda;border-radius:9px;background:white;color:var(--ink);font:inherit;cursor:pointer}
.month-filter summary::-webkit-details-marker{display:none}.month-filter details[open]>summary{border-color:#7eafb5;box-shadow:0 0 0 3px #195c630d}
.month-filter-popup{position:absolute;top:calc(100% + 8px);left:0;width:300px;max-width:calc(100vw - 50px);padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 12px 28px #23343a20;z-index:20}
.month-filter summary:focus-visible{outline:3px solid #76afb9;outline-offset:3px}
@media(max-width:700px){header .logout{right:20px;top:22px}header h1{font-size:clamp(18px,5.8vw,24px);padding-right:28px}.floating-add{right:18px}}
