.library-section{margin:1.7rem 0 2.3rem}.library-heading{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:.9rem}.library-heading h2,.library-own-heading{margin:0;font-size:1.5rem;line-height:1.2}.library-heading .text-button{white-space:nowrap;min-height:44px;padding:.45rem .1rem}.library-wish-strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:.7rem;scrollbar-width:thin;scrollbar-color:#ae6884 transparent}.library-wish-strip>.saved-restaurant-card{flex:0 0 166px;scroll-snap-align:start;min-width:0}.library-wish-card .saved-restaurant-copy{padding:.7rem .65rem}.library-wish-card h3{font-size:1rem;line-height:1.25}.library-wish-card .saved-restaurant-address{font-size:.875rem}.library-scroll-controls{display:flex;justify-content:flex-end;gap:.2rem}.library-scroll-controls .button{min-height:44px;padding:.35rem .65rem;font-size:.875rem}.library-ranking{list-style:none;margin:0;padding:0}.library-rank-row{display:flex;align-items:center;gap:.7rem;padding:.9rem 0;border-bottom:1px solid var(--line,#e7a5bf)}.library-place{width:2.15rem;flex-shrink:0;text-align:center;font-size:1.65rem;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums}.library-place small{display:block;font-size:.75rem;font-weight:400}.library-rank-link{display:flex;align-items:center;gap:.8rem;flex:1;min-width:0;text-decoration:none;color:inherit}.library-rank-link strong{font-size:1rem;font-weight:600;line-height:1.2}.library-rank-link small{display:block;font-size:.875rem;margin-top:4px;color:var(--muted,#813653)}.library-thumb{width:56px;height:56px;flex:0 0 56px;border-radius:12px;overflow:hidden;background:#fff3f8}.library-thumb img,.library-result-photo img{width:100%;height:100%;object-fit:cover}.library-rank-row>.text-button{min-height:44px;padding:.4rem;font-size:.875rem}.library-pending{margin-top:1.5rem}.library-pending h3{font-size:1rem;font-weight:500;margin:0 0 .4rem}.library-pending-row{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:.25rem 0}.library-pending-row>span{min-width:0;font-size:1rem}.library-pending-row .button{font-size:.875rem;min-width:70px;flex-shrink:0}.library-empty{padding:1.3rem 1rem;background:var(--paper,#fff3f8);border-radius:18px}.library-empty p{margin:0 0 1rem;font-size:1rem}.library-own-heading{margin-bottom:1.4rem}.library-wish-choice{margin-bottom:1rem;border-color:var(--control-line,#ae6884)!important}.library-branch-actions{display:flex;flex-wrap:wrap;gap:2px;margin-top:.45rem}.library-branch-actions .button{min-height:44px;padding:.5rem .6rem;font-size:.9rem}.button.quiet{background:transparent;border-color:transparent;color:var(--ink,#701a42);box-shadow:none}.button.danger{background:#8b1e3f;color:white;border-color:#8b1e3f}.library-notice{background:#fff3f8;padding:.65rem .8rem;border:1px solid #ae6884;border-radius:12px;margin:.7rem 0;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:1rem}.library-notice p{margin:0;flex:1 1 100%}.library-notice .button{min-height:44px;padding:.45rem .7rem}.library-dialog h2{margin:0;font-size:1.65rem;line-height:1.15}.library-dialog-place{color:#813653;margin:.5rem 0 1.5rem;font-size:1rem}.library-dialog .button{min-height:44px}.library-dialog label{display:block;font-size:1rem;margin-bottom:.45rem}.library-dialog input:not([type=checkbox]),.library-dialog textarea{width:100%;min-width:0;box-sizing:border-box;font:inherit;font-size:1rem;padding:.8rem;border:1px solid #ae6884;background:#fff7fa;color:#701a42;border-radius:12px}.library-dialog details{margin:1rem 0}.library-dialog summary{min-height:44px;cursor:pointer;padding:.6rem 0;font-size:1rem}.library-dialog .library-check{display:flex;align-items:flex-start;gap:.55rem;margin:1.1rem 0;font-size:.95rem;line-height:1.4}.library-check input{width:20px;height:20px;flex-shrink:0;accent-color:#931647}.library-actions{display:flex;flex-direction:column;gap:.65rem;margin:1.3rem 0}.library-reactions{display:flex;flex-direction:column;gap:.65rem;margin:1.4rem 0}.library-reactions .button{justify-content:center;font-size:1.1rem;padding:1rem}.library-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.library-compare-choice{padding:0 0 .8rem;border:1px solid #ae6884;border-radius:16px;overflow:hidden;background:#fff7fa;color:#701a42;font:inherit;cursor:pointer;text-align:left;min-width:0}.library-compare-choice:focus-visible,.library-compare-choice:hover{outline:3px solid #931647;outline-offset:2px}.library-compare-photo{display:block;aspect-ratio:4/3;overflow:hidden}.library-compare-photo img{width:100%;height:100%;object-fit:cover}.library-compare-choice strong{display:block;font-size:1rem;padding:.7rem .65rem 0;line-height:1.25}.library-compare-choice small{display:block;padding:.35rem .65rem 0;font-size:.875rem;line-height:1.3}.library-compare-other{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem;margin-top:1rem}.library-compare-other>.button:first-child{flex-basis:100%}.library-step-controls{display:flex;justify-content:space-between;margin-top:1rem}.library-result{text-align:center;padding:.7rem 0 1.3rem}.library-result-photo{display:block;width:100px;height:100px;border-radius:22px;overflow:hidden;margin:auto}.library-result .library-result-place{font-size:2rem;font-weight:600;margin:1rem 0 .2rem}.library-result p{margin:0}.library-result+.button{width:100%;justify-content:center}.library-history{border-top:1px solid #e7a5bf;padding:1rem 0}.library-history p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}.library-history>div:last-child{display:flex;gap:.6rem}.library-search-results{max-height:45vh;overflow:auto;margin-top:.8rem}.library-search-result{display:flex;align-items:center;gap:.8rem;width:100%;padding:.7rem 0;background:transparent;border:0;border-bottom:1px solid #e7a5bf;color:#701a42;font:inherit;text-align:left;cursor:pointer}.library-search-result strong,.library-search-result small{display:block}.library-search-result small{font-size:.875rem;margin-top:.2rem}.library-dialog [role=alert]{margin-top:1rem}.library-dialog [disabled]{opacity:.65}#info-dialog:has(.library-dialog){width:min(490px,calc(100% - 24px));max-height:calc(100dvh - 28px);padding:24px;overflow:auto;border-radius:24px}#info-dialog:has(.library-dialog) #close-dialog{margin-top:1rem;min-height:44px}@media(min-width:700px){.library-wish-strip>.saved-restaurant-card{flex-basis:205px}.library-section{margin:2rem 0 3rem}.library-ranking{max-width:760px}.library-empty{max-width:760px}.library-pending{max-width:760px}}@media(max-width:350px){#info-dialog:has(.library-dialog){padding:18px}.library-rank-row{gap:.45rem}.library-thumb{width:48px;height:48px;flex-basis:48px}.library-place{width:1.9rem}.library-rank-link{gap:.5rem}}@media(prefers-reduced-motion:reduce){.library-wish-strip{scroll-behavior:auto}}@media(forced-colors:active){.library-compare-choice,.library-empty,.library-notice{border:1px solid CanvasText}}

.library-pending-place{min-width:0;text-align:left;min-height:44px;line-height:1.3;font-size:1rem;padding:.35rem 0}

/* Selected concept's light paper panel, kept within the existing pink page. */
.library-ranking-panel{background:#fff3f8;border:1px solid #e7a5bf;border-radius:24px;padding:20px 18px;max-width:820px;box-sizing:border-box}
.library-ranking-panel .library-heading{margin-bottom:.45rem}
.library-ranking-panel .library-rank-row:last-child{border-bottom:0;padding-bottom:.35rem}
.library-ranking-panel .library-empty{padding:1rem 0 .25rem;background:transparent}
.library-ranking-panel .library-pending{border-top:1px solid #e7a5bf;padding-top:1rem}
@media(max-width:350px){.library-ranking-panel{padding:18px 13px}.library-ranking-panel .library-heading h2{font-size:1.35rem}}
@media(min-width:700px){.library-ranking-panel{padding:24px}.library-ranking-panel .library-ranking{max-width:none}}

/* One task per dialog; the same paper surface as Min Toppliste. */
#info-dialog:has(.library-dialog){position:fixed;inset:0;margin:auto;background:#fff3f8;border:1px solid #e7a5bf;padding:28px;color:#701a42}
#info-dialog:has(.library-dialog) #close-dialog{position:absolute;right:12px;top:10px;width:44px;height:44px;min-width:44px;padding:0;margin:0;border:0;background:transparent;box-shadow:none;font-size:0;color:#701a42}
#info-dialog:has(.library-dialog) #close-dialog::before{content:'×';font-size:29px;font-weight:400;line-height:1}
.library-dialog h2{padding-right:36px;font-size:1.65rem;letter-spacing:-.025em;line-height:1.18}
.library-dialog .button{margin-top:0;white-space:normal}
.library-dialog .button.full{width:100%;justify-content:center}
.library-dialog .button.quiet{padding:.6rem .25rem}
.library-dialog-back{margin:-9px 40px 13px -3px}
.library-dialog-back .button{font-size:.9rem}
.library-place-identity{display:flex;align-items:center;gap:13px;margin:23px 0 25px;padding-bottom:21px;border-bottom:1px solid #e7a5bf}
.library-place-identity .library-thumb{width:64px;height:64px;flex-basis:64px;border-radius:15px}
.library-place-identity strong{display:block;font-size:1.05rem;line-height:1.3;font-weight:600}
.library-place-identity small{display:block;font-size:.85rem;line-height:1.4;color:#813653;margin-top:5px}
.library-dialog .library-reactions{border:0;padding:0;margin:0 0 22px;gap:9px}
.library-reactions legend{font-size:1rem;font-weight:500;padding:0;margin-bottom:13px}
.library-reaction{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:54px;padding:13px 16px;font:inherit;font-size:1rem;text-align:left;border:1px solid #d39ab0;border-radius:14px;background:transparent;color:#701a42;cursor:pointer}
.library-reaction[aria-pressed=true]{background:#f7d5e3;border:2px solid #931647;padding:12px 15px}
.library-reaction-check{display:flex;align-items:center;justify-content:center;flex:0 0 22px;height:22px;border:1px solid #b87993;border-radius:50%;font-size:14px}
.library-reaction[aria-pressed=true] .library-reaction-check{background:#931647;color:#fff3f8;border-color:#931647}
.library-reaction:focus-visible,.library-history-row:focus-visible{outline:3px solid #931647;outline-offset:3px}
.library-secondary-links{border-top:1px solid #e7a5bf;margin-top:22px;padding-top:10px}
.library-secondary-links .button{display:flex;justify-content:space-between;width:100%;font-size:.95rem}
.library-dialog .library-more{margin:2px 0 0}
.library-more summary{color:#813653;font-size:.875rem}
.library-more .button{font-size:.9rem;text-align:left}
.library-history-ranking{margin-bottom:15px}
.library-history-row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;padding:18px 1px;border:0;border-bottom:1px solid #e7a5bf;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.library-history-row>span:first-child{min-width:0}
.library-history-row strong{display:block;font-size:1rem;font-weight:500}
.library-history-row small,.library-history-note{display:block;font-size:.9rem;line-height:1.45;color:#813653;margin-top:6px;overflow-wrap:anywhere}
.library-history-note{white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.library-history-row>span:last-child{font-size:25px;font-weight:400}
.library-dialog label .help{display:inline-block;margin-left:.3rem;font-size:.85rem;color:#813653}
.library-dialog input:not([type=checkbox]),.library-dialog textarea{background:#fffafd}
.library-draft-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-8px 0 13px;font-size:.85rem;color:#813653}
.library-draft-status .button{font-size:.85rem}
.library-resume-card p{margin:0 0 15px}
.library-resume-card .button{width:100%;justify-content:center}
.library-ready{line-height:1.55;margin:22px 0}
.library-compare{margin-top:24px}
.library-compare-other .button{font-size:.95rem}
.library-step-controls{justify-content:center;margin:14px 0 0}
.library-result>strong{display:block;margin-top:15px;font-size:1.1rem;line-height:1.3}
.library-result{padding-top:24px}
.library-dialog .error{font-size:.95rem;line-height:1.5}
@media(max-width:350px){#info-dialog:has(.library-dialog){padding:22px 18px}.library-dialog h2{font-size:1.45rem}.library-place-identity{gap:10px;margin:20px 0}.library-place-identity .library-thumb{width:54px;height:54px;flex-basis:54px}.library-place-identity strong{font-size:1rem}.library-compare{gap:9px}}
@media(forced-colors:active){.library-reaction[aria-pressed=true]{border:3px solid Highlight}.library-reaction-check{border-color:CanvasText}}

.button.quiet:hover:not(:disabled){background:#f7d5e3;color:#701a42;border-color:transparent}
.library-add-place{font-size:.9rem;min-height:44px;margin-top:12px}

/* Save shares the rating dialog's paper surface and restaurant identity. */
.save-dialog .library-place-identity{margin-bottom:22px}
.save-dialog .save-choice{display:flex;width:100%;min-height:56px;gap:16px;padding:14px 15px;margin:0;text-align:left;background:transparent;border:1px solid #d39ab0;border-radius:14px;color:#701a42;font:inherit;cursor:pointer;box-sizing:border-box}
.save-choice>span:first-child{min-width:0;overflow-wrap:anywhere}
.save-choice strong{font-weight:500;font-size:1rem}
.save-choice small{display:block;font-size:.85rem;margin-top:4px;color:#813653}
.save-dialog .save-choice[aria-pressed=true]{background:#f7d5e3;border-color:#931647}
.save-check{display:flex;align-items:center;justify-content:center;align-self:center;width:22px;height:22px;flex:0 0 22px;border:1px solid #b87993;border-radius:6px;font-size:15px}
.save-choice[aria-pressed=true] .save-check{background:#931647;color:#fff3f8;border-color:#931647}
.save-lists{margin-top:26px}
.save-lists h3{font-size:.95rem;font-weight:500;margin:0 0 11px}
[data-save-lists]{display:grid;gap:8px}
.save-legacy{order:1;margin-top:12px;border-top:1px solid #e7a5bf;padding-top:14px}
.save-legacy p{font-size:.85rem;color:#813653;margin:0 0 9px}
.library-dialog .save-new-list{margin:6px 0 0}
.save-new-list summary{display:flex;align-items:center;min-height:44px;list-style:none;padding:9px 2px;font-size:.95rem}
.save-new-list summary::-webkit-details-marker{display:none}
.save-new-list form{display:grid;gap:10px;padding:10px 0 5px}
.save-new-list label{margin:0}
.save-new-list .button{margin-top:3px}
.save-status{text-align:center;font-size:.8rem;color:#813653;margin:24px 0 12px;line-height:1.4}
.save-dialog [data-library-picker] .error{margin-bottom:9px}
.save-dialog [data-library-picker]>.button{margin-bottom:12px}
.save-choice:focus-visible,.save-new-list summary:focus-visible{outline:3px solid #931647;outline-offset:3px}
.save-dialog .library-notice{font-size:.9rem}
@media(forced-colors:active){.save-choice[aria-pressed=true] .save-check{border:2px solid Highlight}}

/* A visible post-visit entry, subordinate to directions and saving. */
.library-branch-review{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 14px;margin-top:16px;padding:12px 14px;background:#f9e2ec;border:1px solid #e7a5bf;border-radius:16px}
.library-branch-review>strong{flex:1 1 130px;font-size:.95rem;font-weight:500;line-height:1.35}
.library-branch-review>strong small{display:block;font-weight:400;font-size:.8rem;margin-top:3px}
.library-branch-review>.button{flex:0 1 auto;min-height:44px;padding:.6rem .9rem;font-size:.9rem;white-space:normal;background:#fff7fa}
/* The review action is below the restaurant link. The shared saved-card row
   layout would otherwise squeeze the photo and name beside this action. */
.saved-restaurant-card.library-wish-card{flex-direction:column}
.saved-restaurant-card.library-wish-card>.saved-restaurant-link{flex:1 0 auto;height:auto}
.library-wish-review{flex:none;padding:0 .6rem .5rem;border-top:1px solid #e7a5bf}
.library-wish-review .button{width:100%;min-width:0;min-height:44px;padding:.45rem .2rem;font-size:.85rem;white-space:normal}
.library-dialog .library-visit-details{margin:0 0 16px;border-top:1px solid #e7a5bf;border-bottom:1px solid #e7a5bf}
.library-visit-details summary{font-size:.95rem}
.library-visit-details summary span{font-size:.8rem;color:#813653;margin-left:.35rem}
.library-visit-details[open]{padding-bottom:16px}
.library-dialog .library-note-label{margin-top:18px}
.library-privacy{font-size:.8rem;color:#813653;text-align:center;line-height:1.4;margin:16px 0 0}
.library-dialog .library-actions{gap:4px;margin:18px 0 0}
.library-dialog .library-compare{margin-top:20px}
.library-dialog .library-compare-choice small{font-size:.8rem}
.library-result+.button+.button{width:100%;justify-content:center;margin-top:6px}
@media(max-width:350px){.library-branch-review{padding:10px;gap:8px}.library-branch-review>strong{flex-basis:100%;font-size:.9rem}.library-branch-review>.button{width:100%;justify-content:center}}
@media(forced-colors:active){.library-branch-review{border-color:CanvasText}}
