/* =============================================================================
   Live Photo Stream — styles (scoped: .ps-*)
   Loaded by application/views/blocks/photostream.php on article pages that have
   a stream. No font-family here: inherit the article/site fonts.
   ============================================================================= */

.ps-stream{margin:14px 0 4px;}
.ps-stream__start,.ps-stream__end{margin:0;border:0;border-top:2px solid #d0d0d0;}
.ps-stream__start{margin-bottom:12px;}
.ps-stream__end{margin-top:12px;}
.ps-batch{margin:0;padding:0;}
.ps-batch + .ps-batch{border-top:1px solid #e4e4e4;padding-top:12px;margin-top:12px;}
.ps-batch__head{margin:0 0 8px;line-height:1.4;}
.ps-batch__time{font-weight:bold;color:#555;}
.ps-batch__author{color:#888;}
.ps-batch__title{margin:3px 0 2px !important;}
.ps-batch__desc{margin:2px 0 4px;color:#333;}
.ps-photos{list-style:none;margin:0;padding:0;font-size:0;}
.ps-photos li{display:inline-block;vertical-align:top;width:25%;box-sizing:border-box;padding:0 8px 10px 0;font-size:13px;line-height:1.35;position:relative;}
.ps-photos a.thumbnail{display:block;position:relative;width:100%;padding:0;margin:0;border:0;border-radius:3px;overflow:hidden;background:#e9e9e9;box-shadow:none;line-height:0;}
.ps-photos a.thumbnail:before{content:"";display:block;padding-top:100%;}
.ps-photos a.thumbnail img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;min-width:0;min-height:0;max-width:none;}
.ps-photos__cap{display:block;margin:5px 0 0;color:#333;}
.ps-photos__by{display:block;color:#8a8a8a;font-size:12px;}
.ps-photos--oneline{white-space:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:6px;}
.ps-photos--oneline li{width:150px;white-space:normal;}
@media (max-width:979px){ .ps-photos li{width:33.333%;} }
@media (max-width:600px){ .ps-photos li{width:50%;} .ps-photos--oneline li{width:130px;} }

/* ---- Admin controls ---- */
.ps-adminbar{margin:8px 0 0;}
.ps-btn{display:inline-block;padding:5px 10px;margin:0 4px 4px 0;border:1px solid #bbb;border-radius:4px;background:#f4f4f4;color:#333 !important;cursor:pointer;font-size:13px;line-height:1.2;text-decoration:none;}
.ps-btn:hover{background:#e4e4e4;border-color:#a5a5a5;color:#222 !important;text-decoration:none;}
.ps-btn--primary{background:#2c539e;border-color:#26488a;color:#fff !important;}
.ps-btn--primary:hover{background:#22417c;border-color:#1c3567;color:#fff !important;}
.ps-btn--danger{background:#c0392b;border-color:#a83224;color:#fff !important;}
.ps-btn--danger:hover{background:#a5301f;border-color:#8f2a1b;color:#fff !important;}
.ps-btn--small{padding:2px 7px;font-size:12px;}
.ps-batch__admin{margin:6px 0 0;}
.ps-photo-del{position:absolute;top:2px;right:10px;z-index:2;width:22px;height:22px;line-height:20px;text-align:center;border-radius:50%;background:rgba(192,57,43,.92);color:#fff;font-size:14px;cursor:pointer;}
.ps-panel{border:1px solid #cdd6e2;background:#f7f9fc;border-radius:6px;padding:12px;margin:10px 0 0;}
.ps-panel[hidden]{display:none;}
.ps-panel label{display:block;font-weight:bold;margin:8px 0 2px;font-size:13px;}
.ps-panel input[type=text],.ps-panel textarea{width:100%;max-width:520px;box-sizing:border-box;padding:5px 7px;border:1px solid #bbb;border-radius:4px;font-size:14px;}
.ps-panel textarea{height:56px;}
.ps-panel__row{margin:2px 0;}
.ps-select{padding:4px 6px;border:1px solid #bbb;border-radius:4px;font-size:14px;max-width:220px;}
.ps-prev{list-style:none;margin:10px 0 0;padding:0;overflow:hidden;}
.ps-prev li{float:left;width:150px;margin:0 10px 12px 0;padding:8px;border:1px solid #d5dce6;border-radius:5px;background:#fff;box-sizing:border-box;position:relative;}
.ps-prev__img{width:100%;height:110px;background:#eee center/cover no-repeat;border-radius:3px;cursor:zoom-in;position:relative;}
.ps-prev__spin{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);text-align:center;color:#888;font-size:12px;}
.ps-prev__meta{font-size:11px;color:#777;margin:4px 0 2px;line-height:1.3;}
.ps-prev__dup{color:#c0392b;font-weight:bold;}
.ps-prev input[type=text]{width:100%;box-sizing:border-box;font-size:12px;padding:3px 5px;margin:2px 0;border:1px solid #ccc;border-radius:3px;}
.ps-prev__ctrls{margin-top:4px;text-align:center;font-size:0;}
.ps-prev__ctrls button{font-size:13px;margin:0 1px;padding:1px 6px;border:1px solid #bbb;background:#f4f4f4;border-radius:3px;cursor:pointer;}
.ps-prev__ctrls .ps-prev__rm{color:#c0392b;}
.ps-prev li.ps-drag-over{outline:2px dashed #2c539e;}
.ps-prev__status{font-size:11px;margin:2px 0;line-height:1.3;}
.ps-prev__status--wait{color:#888;}
.ps-prev__status--ok{color:#3a8a3a;}
.ps-prev__status--fail{color:#c0392b;font-weight:bold;}
.ps-prev__retry{margin:2px 0 4px;width:100%;}
.ps-prev li.ps-prev--failed{border-color:#c0392b;background:#fdecea;}
.ps-retryall{margin:8px 0 0;}
.ps-zoom{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.9);display:none;text-align:center;}
.ps-zoom.ps-zoom--on{display:block;}
.ps-zoom__img{max-width:100%;max-height:100%;margin:auto;position:absolute;inset:0;object-fit:contain;cursor:zoom-in;}
.ps-zoom__img.ps-zoom--actual{max-width:none;max-height:none;object-fit:none;cursor:zoom-out;inset:auto;}
.ps-zoom__close{position:fixed;top:10px;right:16px;color:#fff;font-size:34px;line-height:1;cursor:pointer;z-index:100000;}
.ps-log{list-style:none;margin:8px 0 0;padding:0;font-size:12px;color:#777;max-height:120px;overflow:auto;}

/* Batch editor photos: card style, side-by-side (mirrors the upload preview panel). */
.ps-editphotos{margin:6px 0 0;padding:0;list-style:none;overflow:hidden;}
.ps-editphoto{float:left;width:150px;margin:0 10px 12px 0;padding:8px;border:1px solid #d5dce6;border-radius:5px;background:#fff;box-sizing:border-box;}
.ps-editphoto__thumb{width:100%;height:100px;background:#eee center/cover no-repeat;border-radius:3px;margin:0 0 5px;}
.ps-editphoto__fields input{width:100%;box-sizing:border-box;font-size:12px;padding:3px 6px;margin:0 0 3px;border:1px solid #ccc;border-radius:3px;}
.ps-editphoto__ctrls{text-align:center;font-size:0;}
.ps-editphoto__ctrls button{font-size:13px;margin:0 1px;padding:1px 8px;border:1px solid #bbb;background:#f4f4f4;border-radius:3px;cursor:pointer;}
.ps-editphoto.ps-drag-over{outline:2px dashed #2c539e;}
@media (max-width:600px){ .ps-editphoto{width:calc(50% - 10px);} }

/* ---- Manage mode: by default admins see the PUBLIC ui; admin controls are hidden
        until "beheren" is toggled on (prevents accidental edit/delete clicks). ---- */
.ps-managebar{margin:8px 0 0;}
/* Adding photos is always available (not gated behind manage mode). Only the
   edit/delete/recover controls are hidden until "beheren" is toggled on. */
.ps-stream:not(.ps-manage) .ps-photo-del,
.ps-stream:not(.ps-manage) .ps-batch__admin,
.ps-stream:not(.ps-manage) #ps-recover-toggle,
.ps-stream:not(.ps-manage) #ps-recover-panel,
.ps-stream:not(.ps-manage) .ps-regenbar,
.ps-stream:not(.ps-manage) .ps-editbox{display:none !important;}
.ps-optwarn{margin:0 0 10px;padding:8px 10px;background:#fff6e5;border:1px solid #f0d69a;border-radius:4px;color:#8a6d3b;font-size:13px;}
.ps-regenbar{margin:10px 0 0;}
.ps-regen-note{font-size:11px;color:#888;margin-left:6px;}
.ps-recover-item{float:left;width:120px;margin:0 10px 10px 0;padding:6px;border:1px solid #d5dce6;border-radius:5px;background:#fff;box-sizing:border-box;text-align:center;}
.ps-recover-item__thumb{width:100%;height:80px;background:#eee center/cover no-repeat;border-radius:3px;margin:0 0 5px;}
.ps-stream.ps-manage{outline:2px dashed #cdd6e2;outline-offset:6px;}
